PDA

View Full Version : [Java] Jar non funzionante create con Eclipse


k_mishima
18-05-2011, 20:20
Salve, ho creato un jar che poi dovrà servirmi come input per il programma Launch4j che crea un eseguibile per win di un programma java, procedura testata con un hello word e completata con successo.

Con il mio programma più complesso (4 classi) non funziona il jar prodotto con eclipse e non capisco perchè, clicco sopra e non succede nulla, mentre con l'hello word mi apre la piccola gui creata per lui.

Il mio programma lanciato con il run di eclipse funziona correttamente e ha 0 errori.
Lo so che senza codice avanti sarebbe difficile capire cosa non va, ma vorrei provare comunque dandovi delle possibile cause.

1 Nel mio programma ho usato delle ImageIcon e ho le immagini in una cartella appartenente al progetto, magari eclipse non impacchetta bene, infatti nell'hello word non riesco a far vedere le ImageIcon

2 Ho usato delle librerie sotto forma di jar importati nel progetto tramite "add external jars". Sono anche parecchie e il mio jar risultante pesa troppo poco, non li inserisce all'interno forse, quindi da RUN il programma funziona e dal jar no. Le librerie sono del programma Protegé 3.4.5

3 Ho creato 4 classi e ho tutti questi file .class

Main.class (ok dal mio Main.java)
DrawLine.class (ok dal mio DrawLine.java)
PopolamentoOntologia (ok dal mio PopolamentoOntologia.java)
PopolamentoOntologia$AmericanStateAbbreviation (ho una enum che si chiama così in PopolamentoOntologia.java)
CreateGUI.class
CreateGUI$1.class
CreateGUI$2.class
CreateGUI$3.class
CreateGUI$4.class
CreateGUI$4$1.class
CreateGUI$4$1$1.class

Non capisco il perché di tutte quei file tratti dalla mia classe CreateGUI.
Se serve, posto tutto il codice di CreareGUI.

Grazie 1000! :p

k_mishima
19-05-2011, 12:08
Credo di aver capito che l'errore provenga dalle librerie

Il file MANIFEST.MF creato in automatico da eclipse è sbagliato, ne ho creato uno mio dove definisco i Class-Path delle librerie e il programma funziona quasi (almeno ora si vede la GUI).
Quello che mi manca è: Nel mio progetto ho specificato come argomenti della JVM la seguente riga

-Xms256M -Xmx1300M -Dprotege.dir="C:\Programmi\Protege_3.4.5

Come faccio a dire nel manifest di usare questa riga come parametri per le JVM quando crea il jar? Non trovo l'istruzione adatta


Grazie

PGI-Bis
19-05-2011, 13:21
Purtroppo il manifest non permette di specificare le opzioni di esecuzione.

Credo che tu possa farlo con Launch4J - anche se l'idea di creare un exe per java fa rabbrividire.

Puoi farlo certamente con il descrittore di dispiegamento per applicazioni java-web-start (che adesso può essere usato anche per distribuzioni locali, quindi è diventato java-start e basta :D).