2012-02-13 15 views
6

Estoy intentando empaquetar mi programa en un archivo JAR para que pueda ser utilizado en varias computadoras.Crear archivo jar: no funciona en otras computadoras

Mi programa se compone de start.java, userinterface.java y writer.java.

El programa, escrito en Eclipse, funciona perfectamente en mi computadora. Cuando se exporten, que funcionará en mi equipo, pero producir el siguiente error en otros equipos:

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

Una vez más, mi programa funciona muy bien en mi equipo cuando haga doble clic en él.

He intentado crear el archivo JAR a través del símbolo del sistema, y ​​mi archivo Manifest es correcto. ¿Que esta pasando?

+1

tal vez tienen una JVM con una versión inferior a la que utilizó para compilar? –

+0

Bueno, he adjuntado el archivo a mi publicación principal, ¿quizás te gustaría probarlo? – user1147964

+0

Si compiló el programa usando, por ejemplo, JDK 6, entonces el programa no será lanzado por JRE 5. @GuillaumePolet tiene razón: ¿qué versiones usa para compilar y luego ejecutar en la otra máquina? –

Respuesta

5

Este es un error muy extraño que también he encontrado.

Suponiendo que está usando JRE 1.7,
La única solución que encontré para este problema fue cambiar la versión del proyecto de JRE1.7 a 1.6.

Editar: También he encontrado este error en equipos con JVM 7.

+1

No es un error. Es la forma en que se supone que la JVM debe funcionar. –

+0

Bueno, a veces compilaba proyectos con 'JRE 1.7' y funcionaban bien, mientras que otros proyectos encontraban el mismo problema, aunque probé todas estas jarras en las computadoras con JVM 7. – Acidic

+1

Intenté usar la - Indicador de destino 6 pero obtengo el error: la versión de destino 6 entra en conflicto con la versión de origen predeterminada 1.7. ¿Cómo trato esto? Gracias – user1147964

0

Creo que es porque intenta especificar un archivo de clase del paquete por defecto para el atributoMain-Class. Los archivos JAR y los paquetes predeterminados realmente no se mezclan bien. Aconsejaría poner todo tu proyecto en un paquete simple (por lo que veo en el archivo JAR adjunto, solo usas el paquete predeterminado).

Además, trate de adoptar a la common Java conventions (su difícil saber lo que es una clase y principio pensé que hay algún error-paquete específico, es decir, utilizar Start en lugar de start como un nombre de clase).

Otro problema común es que la última línea del archivo es MANIFEST.MF no interpretado, como se ha dicho 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.

Cuestiones relacionadas