2011-10-01 19 views
23

hice un jar ejecutable con el símbolo del sistema en Windows 7 utilizando elNo se pudo encontrar la clase principal, programa saldrá

jar cvfm MyJarName.jar manifest.txt *.class 

que creó el archivo .jar. Pero cuando intento abrirlo, me sale una ventana emergente que dice

Could not find the main class: <ClassName>. Program will exit. 

Sin embargo, cuando uso

java -jar jarName.jar 

en el símbolo del sistema, que funciona bien. ¿Cual es el trato? Quiero poder hacer doble clic en él.

+0

Muestra el contenido del archivo de manifiesto – adatapost

+0

No sé por lo poco que has explicado, pero en general si tu clase principal es "com.Main", entonces Main.class debe existir dentro de un " com "carpeta dentro del contenedor. –

+0

posible duplicado de [¿Por qué no se pudo cargar el atributo de manifiesto de clase principal desde el archivo jar?] (Http://stackoverflow.com/questions/2591516/why-its-failed-to-load-main-class-manifest- attribute-from-jar-file) – adatapost

Respuesta

39

Ha, me encontré con lo que el problema me. Hice mi programa usando jdk1.7, pero tenía jre6 instalado. Fui y me actualicé a jre7, y ahora funciona bien :)

La línea

java -jar jarname.jar 

estaba trabajando en el símbolo del sistema, porque mi camino java se establece en la carpeta de JDK.

+9

+1 para autoaprendizaje :-) –

+2

Tuve el mismo problema, pero ya tenía jre7 instalado, pero como mi aplicación era ** 32 bits ** tuve que descargar e instalar _jre7-i586 (x86) _ también. ¡Gracias por la respuesta! –

0

Extraiga el contenedor y compare el contenido del manifiesto dentro del contenedor con su archivo manifest.txt externo. Es muy posible que encuentres el problema.

3

Si está utilizando JDK 1.6 o superior, puede anular el atributo de manifiesto a través de la herramienta e de la herramienta Jar. (Lea - Setting an Entry Point with the JAR Tool):

Ejemplo:

package pack; 

public class Test 
{ 
    public static void main(String []args) 
    { 
    System.out.println("Hello World"); 
    } 
} 

compilar y ejecutar Jar herramienta,

c:\>jar cfe app.jar pack.Test pack/Test.class 

invocación aplicación

c:>java -jar app.jar 
-1

Salida haciendo de esta manera (funciona en mi máquina):

permiten que el archivo sea x.java

  1. compilar el archivo javac x.java
  2. frasco k.jar CFE x x.class //k.jar archivo jar es
  3. java-jar k.jar
2

El Manifiesto tex t archivo debe finalizar con una nueva línea o retorno de carro. La última línea no se analizará correctamente si no termina con una nueva línea o retorno de carro.

0

Tenía el mismo problema. Lo que hice fue hacer clic derecho en el proyecto-> propiedades y en el cuadro combinado "Seleccionar/Formato binario", seleccioné JDK 6. Luego lo limpié y lo construí y ahora cuando hago clic en el Jarrón, funciona bien.

0

si construye los archivos fuente con la versión inferior de Java (ejemplo Java1.5) y trata de ejecutar ese programa/aplicación con una versión superior de Java (ejemplo java 1.6) obtendrá este problema. para una mejor explicación, consulte este enlace.click here

Cuestiones relacionadas