Avatar billede knaldeglad Nybegynder
05. august 2005 - 10:20 Der er 39 kommentarer og
1 løsning

program virker ik som jar. men er ok i netbeans (linux console)

Har lavet et program , og det køerer fint ifra netbeans, men når jeg prøver at køre den som jar fra console kommer der bare en masse ævl..

Exception in thread "main" java.lang.NoClassDefFoundError: Visiolog_Messenger.jar....  osv.....

hjælp... plz....
Avatar billede simonvalter Praktikant
05. august 2005 - 10:36 #1
Jeg tror du mangler et manifest i din jar med
Main-Class: package.DinMainKlasse
Avatar billede simonvalter Praktikant
05. august 2005 - 10:37 #2
http://java.sun.com/docs/books/tutorial/jar/basics/

Og hvis du også er afhængig af andre libraries
kan du komme dem i
Class-Path: jar1.jar jar2.jar
Avatar billede arne_v Ekspert
05. august 2005 - 10:41 #3
Umiddelbart syne sjeg at det lyder som du forsøger:

java Visiolog_Messenger.jar

fremfor det rigtige:

java -jar Visiolog_Messenger.jar
Avatar billede arne_v Ekspert
05. august 2005 - 10:42 #4
du skal selvfølgelig også have Main-Class direktivet som Simon beskriver
Avatar billede simonvalter Praktikant
05. august 2005 - 10:44 #5
ja nu du siger det så passer fejlen vist mere på det.
Avatar billede knaldeglad Nybegynder
05. august 2005 - 10:54 #6
njaee  manifest har jeg tilføjet, Main-Class: visiologmessenger.Visiolog_Messenger, men jeg tror egentlig netbeans selv gør det,  det virkede heller ikke....

jo jeg java -jar Visiolog_Messenger.jar.....
Avatar billede simonvalter Praktikant
05. august 2005 - 11:12 #7
Prøv og pak din jar ud og se efter om det nu også ser ud som det skal.
Hvis du selv har pakket den så skal du huske at efter sidste linie i dit manifest skal laves linie skift ellers vil du få en fejl, men
Jeg kan ikke lige huske hvad der er for en fejl den smider.
Avatar billede knaldeglad Nybegynder
05. august 2005 - 11:50 #8
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.2
Created-By: 1.4.2_08-b03 (Sun Microsystems Inc.)
Main-Class: visiologmessenger.Visiolog_Messenger
Class-Path: activation.jar mail.jar mysql-connector-java-3.1.10-bin.jar


og alt er i mappen visiologmessenger ser det ud til...
Avatar billede simonvalter Praktikant
05. august 2005 - 11:57 #9
Prøv lige og paste hele den exception og ikke kun osv..
Avatar billede knaldeglad Nybegynder
05. august 2005 - 11:59 #10
fejlen er ikke den samme på windows.....
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingE
xception
        at visiologmessenger.Investigater.<init>(Investigater.java:42)
        at visiologmessenger.Visiolog_Messenger.main(Visiolog_Messenger.java:28)
Avatar billede simonvalter Praktikant
05. august 2005 - 12:03 #11
ja du har jo mail.jar i Class-path:. ligger den i samme mappe som Visiolog_Messenger.jar
Avatar billede arne_v Ekspert
05. august 2005 - 12:05 #12
se det var jo en anden exception
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:06 #13
fejlen i linux console... 


[root@localhost dist]# java -jar Visiolog_Messenger.jar
Warning: -jar not understood. Ignoring.
Exception in thread "main" java.lang.NoClassDefFoundError: Visiolog_Messenger.jar
  at 0x40268e17: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/./libgcj.so.3)
  at 0x4025bc8e: java.lang.Error.Error(java.lang.String) (/usr/lib/./libgcj.so.3)
  at 0x4025d6b6: java.lang.LinkageError.LinkageError(java.lang.String) (/usr/lib/./libgcj.so.3)
  at 0x4025eb36: java.lang.NoClassDefFoundError.NoClassDefFoundError(java.lang.String) (/usr/lib/./libgcj.so.3)
  at 0x402ad075: gnu.gcj.runtime.FirstThread.run() (/usr/lib/./libgcj.so.3)
  at 0x4024fc4c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/./libgcj.so.3)
  at 0x4021c8ac: _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/./libgcj.so.3)
  at 0x08048910: ?? (??:0)
  at 0x42015574: __libc_start_main (/lib/tls/libc.so.6)
  at 0x080486c1: ?? (??:0)
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:11 #14
øøhh  neejj  det gjorde de ikke ikke.... men jeg kopierere dem der over ,,....  samme fejl...
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:12 #15
nu har jeg fjernet Class-path:. fra manifest....  alle filer incl extra  .jar filer ligger jo pakket i samme mappe som .class filerne...
Avatar billede arne_v Ekspert
05. august 2005 - 12:13 #16
Warning: -jar not understood. Ignoring.

=>

betyder at du ikke bruger en SUN Java men noget andet formentligt GCC Java
og at den ikke kender -jar - og derfor tror at Visiolog_Messenger.jar
er din klasse

nemmeste løsning: hent og installer SUN Java til Linux
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:19 #17
ahem....  har hentet den på java.sun.com
Avatar billede simonvalter Praktikant
05. august 2005 - 12:20 #18
men er den i din PATH.
prøv og kør en java -version
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:20 #19
men har da også selv undret mig over den melding.... Warning: -jar not understood. Ignoring.
Avatar billede arne_v Ekspert
05. august 2005 - 12:21 #20
SUN java kender -jar
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:22 #21
føj hvor er jeg klam.....    det er jo gcc........  men jeg har jo installeret java fra sun i /usr/java  hvorfor bruger den ikke den mon ?
Avatar billede simonvalter Praktikant
05. august 2005 - 12:24 #22
fordi den ikke er i din path
export PATH=/usr/java/bin
og prøv så
Avatar billede simonvalter Praktikant
05. august 2005 - 12:26 #23
Du skal nok have kigget på de filer der tilføjer til path ved login i shell.
.bash_login .bashrc .cshrc eller hvad du nu kører med af shell og scripts.
og så have tilføjet den til sun java.
Avatar billede simonvalter Praktikant
05. august 2005 - 12:28 #24
jeg kan ikke huske hvordan det er med rækkefølgen ved konflikter. om den bruger den første eller sidste sti den møder java i. Men enten det kan du lige lege med.. eller fjerne PATH til gcc versionen.
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:31 #25
ok. nu kommer samme fejl på linux og på windows....
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingE
xception
        at visiologmessenger.Investigater.<init>(Investigater.java:42)
        at visiologmessenger.Visiolog_Messenger.main(Visiolog_Messenger.java:28)
Avatar billede simonvalter Praktikant
05. august 2005 - 12:32 #26
ja så skal du som nævnt have Class-Path: til mail.jar og activation.jar
og ligge dem i samme mappe som dit program.jar
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:35 #27
jam d er jo pakket med i min Visiolog_Messenger.jar ?!
Avatar billede simonvalter Praktikant
05. august 2005 - 12:38 #28
så er de ihvertfald pakket forkert med. så skal strukturen være sådan her:
visiologmessenger/ Klasser
javax/mail/ Klasser

Jeg er mere til den anden måde.. da folk f.eks har mulighed for at udskifte de andre jar filer til en nyere version.
Avatar billede arne_v Ekspert
05. august 2005 - 12:41 #29
man kan ikke pakke jar filer i en anden jar fil

man bør bruge Class-Path i manifest

(man kan også udpakke alle class filerne fra en jar fil og pakke dem med
i en anden jar fil, men det er absolut ikke nogen god ide)
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:45 #30
kan du gi et eksempel på et manifest hvor extra .jar ligger i andre mapper for at se hvad du mener ?
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:46 #31
nå ?  det gør netbeans ellers.....
Avatar billede knaldeglad Nybegynder
05. august 2005 - 12:49 #32
nej sry det gør netbeans ikke......  det er ig der har smidt jar filer i src bib. i netbeans......  derfor er de avnet i jar filen......
Avatar billede simonvalter Praktikant
05. august 2005 - 12:52 #33
Så må du have sat den til at include dependencies, det mener jeg ihvertfald jbuilder kunne.
Class-Path: activation.jar mail.jar mysql-connector-java-3.1.10-bin.jar

Så ligger Visiolog_Messenger.jar og de andre i samme mappe

du kan vist også bruge

Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-3.1.10-bin.jar

så ligger de sådan her
/sti/til/Visiolog_Messenger.jar
/stil/til/lib/
Avatar billede knaldeglad Nybegynder
05. august 2005 - 13:06 #34
øv hvor erdet synd for jer jeg ik fatter hvad i mener..... men jeg tror det er noget med at man skal henvise til der hvor java er installeret/javax/mail  eller ? og de andre filer.. ??  skal jeg så udbpakke de der jar filer mail.jar og activation.jar og smide mapper i /lib under min java install ?...      begynder snart at tude....
Avatar billede knaldeglad Nybegynder
05. august 2005 - 13:08 #35
i henhold til kommentar lige over hvor jeg tuder...  der hvor du skriver Class-Pass: lib/activation.jar er det den lib der er under min javainstallation ?
Avatar billede knaldeglad Nybegynder
05. august 2005 - 13:11 #36
men der er ingen javax i min usr/java/jre1.5.0_04/lib
Avatar billede simonvalter Praktikant
05. august 2005 - 13:18 #37
nej du har din Visiolog_Messenger.jar liggende i en eller anden mappe. Den er afhængig af mail.jar og activation.jar
Dem ligger du i samme mappe hvis dit mainfest siger
Class-Path: activation.jar mail.jar mysql-connector-java-3.1.10-bin.jar

Hvis du vil have din Visiolog_Messenger.jar liggende for sig selv. Men mail.jar og activation.jar liggende i en undermappe der hedder lib
så bruger du Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-3.1.10-bin.jar

/usr/java/jre1.5.0_04/lib har intet med det at gøre.
Avatar billede knaldeglad Nybegynder
05. august 2005 - 13:29 #38
Hurraaaaa......... it works....  mange tak for usædvanlig tålmodighed.... lavedde en mappe der hedder lib hvor jeg har min Visiolog_Messenger.jar og idenne puttede jeg activation.jar mail.jar mysql-connector-java-3.1.10-bin.jar og skrev i manifest:
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-3.1.10-bin.jar
Avatar billede knaldeglad Nybegynder
05. august 2005 - 13:30 #39
smid svar simonvalter og tak til arne for vågne bemærkninger
Avatar billede simonvalter Praktikant
05. august 2005 - 13:36 #40
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester