Skocz do zawartości

Jre


wi-ciu

Rekomendowane odpowiedzi

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

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

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

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...