2012-02-13 9 views
6

Sto provando a impacchettare il mio programma in un file JAR in modo che possa essere utilizzato su più computer.Creazione del file Jar: non funziona su altri computer

Il mio programma è composto da start.java, userinterface.java e writer.java.

Il programma, scritto in Eclipse, funziona perfettamente sul mio computer. In caso di esportazione, che funzionerà sul mio computer, ma causare il seguente errore su altri computer:

"Could not find the main class: start. Program will exit".

Ancora una volta, il mio programma funziona bene sul mio computer quando si fa doppio clic su di esso.

Ho provato a creare il file JAR tramite prompt dei comandi e il mio file manifest è corretto. Che cosa sta succedendo?

+1

Forse hanno una JVM con una versione inferiore a quello utilizzato per compilare? –

+0

Bene, ho allegato il file al mio post principale, forse ti piacerebbe provarlo? – user1147964

+0

Se si è compilato il programma utilizzando, ad esempio, JDK 6, il programma non verrà avviato da JRE 5. @GuillaumePolet ha ragione: quali versioni si utilizzano per compilare e quindi eseguire sull'altra macchina? –

risposta

5

Questo è un bug molto strano che ho anche incontrato.

Supponendo che si sta utilizzando JRE 1.7,
L'unica soluzione che ho trovato a questo problema è stato quello di cambiare la versione del progetto JRE da 1.7 fino a 1.6.

Edit: ho anche incontrato questo errore su computer con JVM 7.

+1

Non è un bug. È il modo in cui la JVM dovrebbe funzionare. –

+0

Bene, a volte compilerei i progetti con 'JRE 1.7' e funzionerebbero bene, mentre alcuni altri progetti hanno riscontrato lo stesso problema - anche se ho provato tutti questi barattoli su computer con JVM 7. – Acidic

+1

Ho provato ad usare il - target 6 flag ma ottengo l'errore: target release 6 è in conflitto con la versione di default 1.7. Come indirizzo questo? Grazie – user1147964

0

Credo che sia perché si tenta di specificare un file di classe del pacchetto di default per l'attributo Main-Class. I file JAR e i pacchetti predefiniti non si combinano bene. Ti consiglio di inserire tutto il tuo progetto in un pacchetto semplice (per quanto ho visto dal file JAR allegato, usi solo il pacchetto predefinito).

Inoltre, cercare di adottare per il common Java conventions (la sua difficile dire che cosa è una classe e un primo momento ho pensato che ci sia qualche errore specifico pacchetto, vale a dire, utilizzare Start invece di start come un nome di classe).

Un altro problema comune è che l'ultima riga del file MANIFEST.MF è non interpretato, come affermato in the Java tutorial:

Warning:

The text file must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.

Problemi correlati