PDA

View Full Version : [Java] Includere librerie esterne


HeroGian
12-01-2014, 19:17
Salve a tutti, sto realizzando un progettino per l'università, che sto sviluppando con l'ambiente netbeans.
Il problema è che deve essere eseguibile da linea di comando.. ma ho un problema con le librerie esterne.

premetto che ho la seguente struttura di directory

*Progetto*
----------*src - sorgenti.java
----------*doc
----------*lib - libreriaEsterna.jar

ho provato a compilare con
javac -cp ../lib/libreriaEsterna.jar *.java

ed eseguire con
java -cp ../lib/libreriaEsterna.jar Main

il problema è che se includo il percorso alla libreria quando provo ad eseguire mi dice "impossibile trovare la classe Main"; e se eseguo con solo java Main quando vado ad eseguire la porzione di codice che usa le librerie mi dice che non trova le classi..

vi prego di aiutarmi.. ho provato anche ad usare il comando java -help ed anche li mi dice di includere -cp quando eseguo.. ma non va!!
help:(

sottovento
13-01-2014, 07:49
Salve a tutti, sto realizzando un progettino per l'università, che sto sviluppando con l'ambiente netbeans.
Il problema è che deve essere eseguibile da linea di comando.. ma ho un problema con le librerie esterne.

premetto che ho la seguente struttura di directory

*Progetto*
----------*src - sorgenti.java
----------*doc
----------*lib - libreriaEsterna.jar

ho provato a compilare con
javac -cp ../lib/libreriaEsterna.jar *.java

ed eseguire con
java -cp ../lib/libreriaEsterna.jar Main

il problema è che se includo il percorso alla libreria quando provo ad eseguire mi dice "impossibile trovare la classe Main"; e se eseguo con solo java Main quando vado ad eseguire la porzione di codice che usa le librerie mi dice che non trova le classi..

vi prego di aiutarmi.. ho provato anche ad usare il comando java -help ed anche li mi dice di includere -cp quando eseguo.. ma non va!!
help:(

NetBeans e' un IDE piuttosto intelligente. Immagino che le librerie esterne, (cioe' dei .jar, corretto?) siano stati aggiunti al progetto cliccando con il tasto destro su Properties e poi selezionando Libraries. Corretto?

In tal caso, netbeans ti ha generato un .jar contenente il tuo progetto e nel manifest ivi contenuto c'e' il riferimento CORRETTO alle tue librerie.
In tal caso, ti basta scrivere

java -jar <nome del tuo file progetto .jar>

e dovrebbe andare tutto correttamente.
Se proprio vuoi specificare la classe di partenza (che so, nello stesso jar hai messo piu' punti da cui l'esecuzione puo' partire), allora devi specificare tutti il tuo file .jar e la classe di partenza COMPRESO IL PACKAGE, per esempio:

java -cp <nome del tuo file progetto.jar> com.sottovento.Main