Gå til innhold

Newbie + Eclipse + JSAP


Anbefalte innlegg

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 :blush:

Lenke til kommentar
Videoannonse
Annonse

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 av thpost
Lenke til kommentar

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... :hmm:

Lenke til kommentar

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 av Kagee
Lenke til kommentar

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 av thpost
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...