¿Por qué no ha podido cargar el atributo de manifiesto de clase principal desde un archivo JAR?
He creado un archivo JAR de esta manera jar cf jar-file input-files
. Ahora, estoy tratando de ejecutarlo. Ejecutarlo no funciona (no se encuentra el comando jre):
jre -cp app.jar MainClass
Esto tampoco funciona:
java -jar main.jar
(No se pudo cargar el atributo manifest de la clase Main desde main.frasco).
También descubrí que
Para ejecutar una aplicación empaquetada como Archivo JAR (versión 1.2 requires requiere Encabezado del manifiesto de clase principal)
¿Qué es el "encabezado de manifiesto de clase principal"? ¿Cómo lo creo y ¿dónde lo pongo?
11 answers
No estoy seguro de creer sus síntomas:
- Si el comando
jre
no se encuentra, entonces ejecutar {[4] } debería dar el mismo error - Simplemente agregando un archivo JAR al classpath no debería dar el error que estás viendo
Espero que veas este error si ejecutas:
java -jar app.jar
El encabezado de la clase Main debe estar en el manifiesto para el archivo JAR-se trata de metadatos sobre cosas como otras bibliotecas requeridas. Consulte la documentación de Sun para saber cómo para crear un manifiesto apropiado. Básicamente necesitas crear un archivo de texto que incluya una línea como esta:
Main-Class: MainClass
Luego ejecuta
jar cfm app.jar manifest.txt *.class
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-10 17:24:10
-
Establece el classpath y compila
Javac -classpath "C:\Program Files\Java\jdk1.6.0_updateVersion\tools.jar " yourApp.java
-
Crear manifiesto.txt
Clase principal: yourApp nueva línea
-
Crea yourApp.jar
Jar cvf0m yourApp.manifiesto de tarro.txt yourApp.clase
-
Ejecutar yourApp.jar
Java-jar yourApp.jar
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-23 09:50:48
Puedes ejecutar con:
java -cp .;app.jar package.MainClass
Funciona para mí si no hay manifiesto en el archivo JAR.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-06 09:37:46
Obtuve este error, y fue porque tenía los argumentos en el orden equivocado:
CORRECTO
java maui.main.Examples tagging -jar maui-1.0.jar
INCORRECTO
java -jar maui-1.0.jar maui.main.Examples tagging
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-24 01:03:43
La forma más fácil de asegurarse de que ha creado correctamente el archivo JAR ejecutable, con el archivo de manifiesto apropiado, es usar Eclipse para compilarlo por usted. En tu proyecto Eclipse, básicamente solo tienes que seleccionar Archivo / Exportar en el menú y seguir las instrucciones.
De esa manera, puede estar seguro de que su archivo JAR es correcto y sabrá buscar en otro lugar si todavía hay un problema. El proceso se describe en su totalidad en FAQ ¿Cómo puedo crear un archivo JAR ejecutable para un ¿programa SWT independiente?.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-10 14:40:11
Descubrí que también estaba teniendo este error en NetBeans. Espero que lo siguiente sea útil.
- Asegúrese de que cuando vaya a Configuración del proyecto establezca la clase principal que desea ejecutar.
- Hacer una Construcción o Una Construcción Limpia
- Coloque el archivo jar donde desee e intente: java-jar "YourProject.jar " de nuevo en la línea de comandos.
Este era el problema que estaba teniendo porque tenía otros programas de "prueba" que estaba usando en NetBeans y tenía que asegurarme de que La clase principal en la parte de ejecución de la configuración del proyecto se estableció correctamente.
Muchas bendiciones, John P
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-11 19:00:56
Estaba recibiendo el mismo error cuando corrí:
prueba jar cvfm.prueba de Tarro.manifiesto de clase.txt
Lo que lo resolvió fue esto:
prueba jar cvfm.manifiesto de tarro.prueba txt.clase
Mi manifiesto tiene el punto de entrada como se indica en oracle docs (asegúrese de que hay un nuevo carácter de línea al final del archivo):
Clase principal: Prueba
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-22 17:36:11
Intenta
java -cp .:mail-1.4.1.jar JavaxMailHTML
No es necesario tener un archivo manifest
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-19 01:46:32
Me enfrenté al mismo problema. Este comando unix no es capaz de encontrar la clase main. Esto se debe a que las versiones de JDK en tiempo de ejecución y de compilación son diferentes. Haga el jar a través de eclipse después de cambiar la versión del compilador de Java. El siguiente enlace me ayudó.
Intente ejecutar el jar creado después de este paso y luego ejecute it
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-24 11:40:31
Si la ruta de acceso de su clase está completamente especificada en manifest, tal vez necesite la última versión de java runtime environment. Mi problema se solucionó cuando reinstalé el jre 8.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-17 08:31:52
Si usas eclipse, prueba a continuación: 1. Haga clic derecho en el proyecto - > seleccionar Exportar 2. Seleccione el archivo Jar ejecutable en seleccionar un destino de exportación 3. Introduzca el nombre de jar y seleccione "Paquete requerido"... "(segundo botón de opción) - > Finalizar
Espero que esto ayude...!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-03 13:41:04