Kagee Skrevet 25. mars 2007 Del Skrevet 25. mars 2007 Jeg er nybegynner i java, noe dere sikkert skjønner ut av sprøsmålet mitt. Jeg tror problemet har noe med classer/classpath å gjøre, men jeg klarer ikke å finne svaret på egen hånd. Jeg har bare drevet med java i ei uke, og har antagelig hoppet over noen viktige kapitler i læreboka. Jeg prøver å lage en applikasjon, og i stedet for å skrive min egen argumentparser tenkte jeg å bruker JSAP. Jeg bruker eclipse som IDE for utvikling, og la til JSAP-2.1.jar som et externt bibliotek når jeg lagde prosjektet. Når jeg nå prøver å kjøre "Hello World"-eksempelet, funker koden helt perfekt i Eclipse, men jeg får feilmeldinger når jeg kjører det fra kommandolinje. Her er koden: (jeg har lagt til importsetningen på toppen) Klikk for å se/fjerne innholdet nedenfor import com.martiansoftware.jsap.*; public class hello_world { public static void main(String[] args) throws Exception { JSAP jsap = new JSAP(); FlaggedOption opt1 = new FlaggedOption("count") .setStringParser(JSAP.INTEGER_PARSER) .setDefault("1") .setRequired(true) .setShortFlag('n') .setLongFlag(JSAP.NO_LONGFLAG); jsap.registerParameter(opt1); JSAPResult config = jsap.parse(args); for (int i = 0; i < config.getInt("count"); ++i) { System.out.println("Hello, World!"); } } } og her er feilmeldingen, etter å ha kjørt "java hello_world": Exception in thread "main" java.lang.NoClassDefFoundError: com/martiansoftware/j sap/StringParser Jeg liker ikke å være nybegynner i noe Lenke til kommentar
thpost Skrevet 26. mars 2007 Del Skrevet 26. mars 2007 (endret) Når du kjører i kommando linje må du ha med JASP jar fila i classpath. java -classpath <path to .jar file> hello_world tror du må ha full path altså f.eks c:/dir/dir/JSAP-2.1.jar men pathen trenger ikke være absolutt, kan også være relativ i forhold til der du kjører java kommandoen Endret 26. mars 2007 av thpost Lenke til kommentar
Kagee Skrevet 26. mars 2007 Forfatter Del Skrevet 26. mars 2007 Jo takk, det funker delvis med classpath. Men nå får jeg: C:\hello_world_1>java -classpath JSAP-2.1.jar hello_world Exception in thread "main" java.lang.NoClassDefFoundError: hello_world Denne skjønner jeg ikke, hello_world-classen er jo der... Lenke til kommentar
thpost Skrevet 27. mars 2007 Del Skrevet 27. mars 2007 (endret) hei glemte det... du må legge til -classpath .;<path til jsap.jar> Fordi når du bruker classpath så overskrives path, og da må du også ha med . som forteller at du skal jvm skal lete etter .class filer der du står. se her om classpath Endret 27. mars 2007 av thpost Lenke til kommentar
Kagee Skrevet 27. mars 2007 Forfatter Del Skrevet 27. mars 2007 (endret) Tusen takk :!: - nå fikk jeg programmet til å funke lokalt. Men i tilfellet jeg vil skryte av mitt nydelige hello-world-program, og jeg eksporterer det som ei jarfil med Eclipse's "Export" - hvordan får jeg da med meg JSAP-2.1.jar i denne, slik at den kan kjøres med et enkelt "java -jar hello_world.jar" (hvordan kan jeg "inkludere" biblioteket i min egen jarfil?) 27.03.2007 13:53 2 519 hello_world.jar 27.03.2007 13:58 2 519 hello_world2.jar 24.03.2007 21:08 69 344 JSAP-2.1.jar 4 fil(er) 713 884 772 byte 12 mappe(r) 10 941 952 000 byte ledig D:\>java -classpath .;JSAP-2.1.jar -jar hello_world.jar Exception in thread "main" java.lang.NoClassDefFoundError: com/martiansoftware/j sap/StringParser Endret 27. mars 2007 av Kagee Lenke til kommentar
thpost Skrevet 28. mars 2007 Del Skrevet 28. mars 2007 (endret) Det er litt værre å ha jar i jar. Men det skal gå an.. har ikke prøvd selv.. Vanligvis benytter jeg en egen katalog (lib) hvor jeg legger alle externe bibliotekene (.jar) jeg trenger. Men les litt på dette om du ønsker å levere alt i en jar Simplify your application delivery with One-JAR Deliver Your Java Application in One-JAR! For å gjøre det veldig enkelt kan du bruke Fat Jat plug-in i eclipse denne ordner alt det som artiklene over forklarer. Men det kan være greit å ha en forståelse av hva som skjer. Fat Jar eclipse plug-in Endret 28. mars 2007 av thpost Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå