java - make - Producción de jar ejecutable en NetBeans
netbeans create executable (17)
Estoy usando NetBeans 6.5 y por alguna razón no producirá el archivo ejecutable "out of the box".
Establecí mi proyecto como el proyecto principal, definí la clase principal en el menú "ejecutar" de propiedades del proyecto y funciona sin problemas cuando presiono F6 para ejecutarlo.
Miré el archivo de manifiesto y, de hecho, no definió la clase principal allí, y también omití las dependencias de la biblioteca.
¿Me estoy perdiendo de algo? ¿Hay alguna manera (además de alterar manualmente el archivo de manifiesto) de producir archivos jar ejecutables?
EDITAR: sí, intenté limpiar y reconstruir y produjo el jar en la carpeta dist, aún con el mismo manifest.mf
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 10.0-b23 (Sun Microsystems Inc.)
¿Limpiaste el proyecto y reconstruiste? Parece que lo estás haciendo bien. Aquí hay algunas referencias por si acaso:
http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.html http://dr.berkeley.edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans
Extraño de hecho, debería hacerlo fuera de la caja, incluido el classpath.
¿Actualizaste una versión anterior? Al actualizar, NB actualizará los archivos del proyecto, pero a veces esta migración no se realiza correctamente y aparece este tipo de escenario. Simplemente cierra el proyecto, cambia el nombre del directorio nbproject a nbproject_old y haz un nuevo proyecto -> proyecto Java con fuentes existentes. Establezca la clase principal de nuevo y agregue dependencias y vuelva a intentarlo.
Otro enfoque es desarrollar, ejecutar pruebas unitarias, etc. en NetBeans, pero luego usar un script maven o ant para hacer su compilación "real". Parece que este tipo de herramientas de compilación te dan más control sobre cómo se construyen las cosas, y también te permiten automatizar compilaciones.
Para maven, puedes agregar entradas al manifiesto fácilmente usando el plugin maven jar:
Si limpia y construye su proyecto, debe crear el jar en el directorio "dist".
Debería crear el manifest.mf en el nivel superior de su directorio de proyecto.
De hecho, encontré esta página después de encontrarme con el mismo problema, edité el archivo manifest.mf pero los cambios no aparecían en el archivo jar MANIFEST.MF. Encontré el problema que tenía y pensé que transmitiría la información en caso de que fuera relevante.
Lo que estaba haciendo mal fue que no tenía el proyecto en el que estaba trabajando como el proyecto principal, así que mientras editaba el manifiesto correcto, estaba compilando el proyecto equivocado.
Entonces, supongo que el resumen de la historia lo revisó y ver si tiene el proyecto correcto seleccionado para el archivo manifest.mf que está editando?
¿Tal vez creó el Proyecto Java con Fuentes Existentes en lugar de la Aplicación Java ?
Tuve un problema similar y la creación de una nueva aplicación Java y luego la copia manual de archivos src resolvió el problema, todo funcionó "de fábrica".
Tuve la experiencia de que el proceso de compilación es diferente, según el tipo de proyecto.
Supongo que creó el proyecto "Biblioteca de clases Java".
Así que solo crea un proyecto de "Aplicación Java" y luego fusiona todas las clases.
Entonces, Netbeans no anulará, sino que mejorará el "manifest.mf"
en el JAR.
Por supuesto, es un error estúpido de Netbeans. Por supuesto, debería ser posible agregar clases principales después.
EDITAR: Por favor, mira mi otra respuesta. Es mas fácil.
Una mejor solución:
Edite nbproject / project.properties y agregue la entrada :
manifest.file=manifest.mf
manifest.mf
debe estar en la raíz del proyecto y contener solo:
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Trabajos. Probado.
Puede encontrar información interesante aquí:
Muy simple, los archivos .jar y .jad están ahí en la carpeta dist
También estaba buscando una respuesta y obtuve esta de http://forums.netbeans.org/ptopic3465.html
Resuelto :)
Prueba esto:
Haga clic con el botón derecho en su proyecto en el panel "Proyectos", seleccione "Propiedades"
Haga clic en "Ejecutar" en la nueva ventana.
Edite el campo "Clase principal:" (haga clic en Examinar).
De esta forma, seleccionará la clase principal que es el punto de entrada a su aplicación y el Manifiesto se creará correctamente.
Ir a la vista de archivos. Crea un manifest.mf en el directorio raíz.
/project_folder
build.xml
manifest.mf(edit here)
/dist
/src
/test
/build
Acabo de tener el mismo problema en NetBeans 7.2.1 con un proyecto de Maven Java Application. Modifique el archivo pom.xml para incluir el complemento de ensamblaje de maven con un ajuste en la respuesta de myrho (necesita hacer referencia al descriptor predefinido "jar-with-dependence"):
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>your.app.MainClass</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Un método alternativo es construir un proyecto de aplicación Java en NetBeans que no utilice Maven. Seleccione Archivo -> Propiedades del proyecto -> Construir -> Embalaje y marque la casilla "Copiar bibliotecas dependientes".
En 7.3 solo habilite Propiedades / Construir / Empacar / Copiar bibliotecas dependientes y la clase principal (dependiendo del objetivo seleccionado) se agregará para manifestarse al construir.
Para forzar manualmente la creación de paquetes con NetBeans IDE 8.0.2 ...
- En el navegador del proyecto, expanda su < proyecto > y haga clic con el botón secundario en Archivos de proyectos / pom.xml
- Haz clic en Ejecutar Maven / Goals
- Escriba "paquete" en el campo Objetivos
- Haga clic en Aceptar
La ventana de salida se mostrará (en Mac) ...
Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
Ok con neatbean puede hacer los siguientes pasos a continuación: 1. Haga clic derecho en el proyecto de nombre elija el elemento Establecer configuración y elija Personalizar
2. Elija Ejecutar y observe la clase principal
3. Elija Examinar y configure la clase si desea ejecutar. Después de hacer clic en Aceptar.
4. Finaliza.
Si está utilizando el complemento ensamblador maven y desea construir un archivo jar ejecutable con dependencias, debe agregar esta parte a la configuración de la sección maven-assembly-plugin en su pom.xml:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- ... -->
<archive>
<manifest>
<mainClass>your.app.SampleClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>