wi-ciu Napisano Maj 31, 2005 Zgłoszenie Share Napisano Maj 31, 2005 Próbuję otworzyć plik .jar (przez komendę 'java jar xxx.jar'), a tu sympatyczny komunikat: Exception in thread "main" java.lang.NoClassDefFoundError: jar at gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.5.0.0) at _Jv_ThreadRun(java.lang.Thread) (/usr/lib/libgcj.so.5.0.0) at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/libgcj.so.5.0.0) at __gcj_personality_v0 (/home/wi-ciu/java.home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre) at __libc_start_main (/lib/tls/libc-2.3.5.so) at _Jv_RegisterClasses (/home/wi-ciu/java.home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre) Ktoś wie, o co chodzi? No wiem, że jakiś kas nie ma, ale kurczę co zrobić to już nie wiem. Mam zainstalowane: compat-gcc-java db4-java gcc-java java-1.4.2-gcj-compat java-1.4.2-gcj-compat-devel Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
przemk Napisano Maj 31, 2005 Zgłoszenie Share Napisano Maj 31, 2005 Próbuję otworzyć plik .jar (przez komendę 'java jar xxx.jar'), a tu sympatyczny komunikat:[ciach] Uzywalem zawsze jre/sdk suna. Tam odpalenie pliku *.jar uzyskuje sie komenda: java -jar program.jar moze o te kreske chodzi! Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
wklaczynski Napisano Maj 31, 2005 Zgłoszenie Share Napisano Maj 31, 2005 Z tej komendy wynika że jar to jest main class, podaj pełną ścieżkę do mainclass. Ja zazwyczaj ściągam sobie wersję 1.5 javy ze strony sun, dowiązuję plik java z katalogu /usr/java/jdk1.5.0_03/bin do home/xxx/bin aby mieć szybki dostęp i piszę pliczek sh do startu #! /bin/sh # add the libraries to the IREPORT_CLASSPATH. # EXEDIR is the directory where this executable is. EXEDIR=${0%/*} DIRLIBS=${EXEDIR}/../lib/*.jar for i in ${DIRLIBS} do if [ -z "$EBM_CLASSPATH" ]; then EBM_CLASSPATH=$i else EBM_CLASSPATH="$i":$EBM_CLASSPATH fi done DIRLIBS=${EXEDIR}/../lib/*.zip for i in ${DIRLIBS} do if [ -z "$EBM_CLASSPATH" ]; then EBM_CLASSPATH=$i else EBM_CLASSPATH="$i":$EBM_CLASSPATH fi done DIRLIBS=${EXEDIR}/../dist/*.jar for i in ${DIRLIBS} do if [ -z "$EBM_CLASSPATH" ]; then EBM_CLASSPATH=$i else EBM_CLASSPATH="$i":$EBM_CLASSPATH fi done EBM_CLASSPATH="${EXEDIR}/../classes":$EBM_CLASSPATH EBM_HOME="${EXEDIR}/.." java -classpath "$EBM_CLASSPATH:$CLASSPATH" -Direport.home=$EBM_HOME com.softp.ebank.Menager "$@" mamy wtedy lepszą kontrolę bo w katalogu w którym jest mój programik potrzębuję trochę klas dodatkowych a więc tworzę sobie katalog lib, w którym mam dodatkowe boiblioteki, bin gdzie mam startery, dist gdzie jest konkretny program Ale można także jak to pokazał przemk, korzystając z w pisu w metainf o ile jest patrametr main-class Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
wi-ciu Napisano Czerwiec 1, 2005 Autor Zgłoszenie Share Napisano Czerwiec 1, 2005 Uzywalem zawsze jre/sdk suna. Tam odpalenie pliku *.jar uzyskuje sie komenda: java -jar program.jar moze o te kreske chodzi! U mnie jakoś to nie działa: Warning: -jar not understood. Ignoring. Exception in thread "main" java.lang.NoClassDefFoundError: Spicetrade-1.2.jar at gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.5.0.0) at _Jv_ThreadRun(java.lang.Thread) (/usr/lib/libgcj.so.5.0.0) at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/libgcj.so.5.0.0) at __gcj_personality_v0 (/home/wi-ciu/downloads/java.home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre) at __libc_start_main (/lib/tls/libc-2.3.5.so) at _Jv_RegisterClasses (/home/wi-ciu/downloads/java.home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre) A co do drugiego sposobu (od wklaczynski), to pracuję nad jego zrozumieniem :-). Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi