puedo - nuevo proyecto java netbeans
Cómo configurar la clase principal en el archivo de manifiesto en el tarro producido por el proyecto NetBeans (9)
Tengo el siguiente problema. Tengo un proyecto Java en mi NetBeans IDE 6.8. Cuando lo compilo y produce un archivo .jar que contiene todo lo posible, el META-INF no es correcto. No contiene la clase a ejecutar, con el método main ().
Cuando hago clic en el botón Ejecutar dentro del IDE, todo funciona. La configuración del proyecto también se establece de la manera correcta: apuntando a una clase en mi proyecto.
Intenté agregar una carpeta META-INF con el archivo de manifiesto pero no lo logré.
¿Hay una manera de hacer esto manualmente en NetBeans, porque encontré que si agrego la clase principal faltante en el manifiesto, todo funciona?
(Supongo que llego a algún tipo de error ...)
// edit: el resultado que busco es que quiero que el jar que se crea con la compilación de NetBeans sea ejecutable con el comando:
Cita de la documentación de Sun :
Cuando la clase principal se establece en el archivo de manifiesto, puede ejecutar la aplicación desde la línea de comandos: java -jar app.jar
¡Voy a hacer un resumen de las soluciones propuestas y la que me ayudó!
Después de leer este informe de errores: error en la forma en que NetBeans 6.8 crea el jar para un proyecto de biblioteca Java.
Crear un archivo manifest.mf en mi raíz de proyecto
Editar manifiesto.mf. El mío se veía algo así:
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 16.3-b01 (Sun Microsystems Inc.) Main-Class: com.example.MainClass Class-Path: lib/lib1.jar lib/lib2.jar
Abrir archivo /nbproject/project.properties
Añadir línea
manifest.file=manifest.mf
Clean + Build del proyecto
Ahora el .jar se construye con éxito.
Muchas gracias vkraemer
Agregar manifest.file = manifest.mf en project.properties y crear el archivo manifest.mf en el directorio del proyecto funciona bien en NB 6.9 y debería funcionar también en NB 6.8.
El problema real es cómo Netbeans JARs sus proyectos. El "Class-Path:" en el archivo Manifest no es necesario cuando se publica su programa para que otros lo utilicen. Si tiene una biblioteca externa agregada en Netbeans, actúa como un paquete. Le sugiero que use un programa como WINRAR para ver los archivos dentro del archivo jar y agregar sus bibliotecas como paquetes directamente en el archivo jar.
Cómo debe verse el interior del archivo jar:
MyProject.jar
Manifest.MF
Main-Class: mainClassFolder.Mainclass
mainClassFolder
Mainclass.class
packageFolder
IamUselessWithoutMain.class
En 7.3 simplemente habilite Propiedades / Construir / Empaquetar / Copiar bibliotecas dependientes y la clase principal se agregará para manifestarse cuando se construya dependiendo del destino seleccionado.
Es simple.
- Clic derecho sobre el proyecto.
- Ir a propiedades
- Ir a Ejecutar en árbol de Categorías
- Establecer la clase principal en el panel lateral derecho.
- Construir el proyecto
Eso es. Espero que esto ayude.
Este es un problema aún a partir de 7.2.1. Cree una biblioteca porque no sabe qué hará si la convierte en una aplicación y está atornillado.
Encontré cómo arreglar esto sin embargo. Edite nbproject/project.properties
, cambie la siguiente línea a falso como se muestra:
mkdist.disabled=false
Después de esto, puede cambiar la clase principal en propiedades y se reflejará en el manifiesto.
Leí y leí y leí para averiguar por qué estaba obteniendo un error de clase no encontrada, resulta que el archivo manifest.mf tenía un error en la línea:
Main-Class: com.example.MainClass
Arreglé el error yendo al cuadro de diálogo Propiedades del proyecto (haga clic con el botón derecho en Archivos del proyecto ), luego Ejecutar y clase principal y corrigí lo que Netbeans decidió poner aquí. Netbean insertó el nombre del proyecto en lugar del nombre de la clase. No tengo idea de por qué. Probablemente embriagado en muratina ...
No lo dude, mire los archivos de su proyecto una vez que haya creado su proyecto por primera vez. Busque un archivo de manifiesto y elija abrir con el bloc de notas.
Añade la línea:
Main-Class: package.myMainClassName
Donde package
es su paquete y myClassName
es la clase con el método main(String[] args)
.
Parece que te encuentras con un error en la forma en que NetBeans 6.8 crea el jar para un proyecto de biblioteca Java .
El problema implica que hay una solución alternativa.
No he podido verificar que con NB 6.8 y / o NetBeans 6.9-dev ...
Es posible que desee registrarse en el sitio web de NetBeans.org / seguimiento de problemas y actualizar el problema y agregar su "voto".