2009-04-29 19 views
44

He programado un programa Java en JCreator, todo está hecho, pero quiero crear un archivo ejecutable a partir de él, es decir, no quiero tener que ejecutar el programa cargando las clases java y compilando y luego ejecutando, sino que lo tengo como un archivo ejecutable independiente.¿Cómo creo un programa Java ejecutable?

¿Cuál es la forma más rápida de hacerlo?

+4

Hay muchas publicaciones sobre esto en stawoverflow. http://stackoverflow.com/questions/80105/whats-the-best-way-to-distribute-java-applications –

Respuesta

1

Escriba un script y hágalo ejecutable. La secuencia de comandos debe ser similar a lo que normalmente utiliza en la línea de comandos:

java YourClass 

Esto supone que ya ha compilado sus archivos .java y que el Java pueden encontrar los archivos .class. Si Java no puede encontrar sus archivos .class, le recomendamos que consulte la opción -classpath o establezca su variable de entorno CLASSPATH.

5

En la línea de comandos, navegue hasta el directorio raíz de los archivos Java que desea que sean ejecutables.

Use este comando:

jar -cvf [name of jar file] [name of directory with Java files] 

Esto creará un directorio llamado META-INF en el archivo jar. En este meta-INF hay un archivo llamado MANIFIEST.MF, abrir este archivo en un editor de texto y añadir la siguiente línea:

Main-Class: [fully qualified name of your main class] 

a continuación, utilizar este comando:

java -jar [name of jar file] 

y su programa será ejecutar :)

10

No estoy muy seguro de lo que quiere decir.

Pero supongo que te refieres a 1 de 2 cosas.

  • desea crear un archivo ejecutable .jar

Eclipse puede hacer esto muy fácilmente Archivo -> Exportar y crear un frasco y seleccionar la principal clase apropiada y que va a generar el. jar para ti. En Windows, puede que tenga que asociar .jar con el tiempo de ejecución de java. también conocido como desplazamiento de retención de abajo, derecha Haga clic en "abrir con" vaya a la JVM y asociarlo con javaw.exe

  • crear un archivo .exe real entonces es necesario utilizar una biblioteca extra como

http://jsmooth.sourceforge.net/ o http://launch4j.sourceforge.net/ creará un stub .exe nativo con un bonito icono que esencialmente iniciará su aplicación. Incluso se dan cuenta si su cliente no tiene una JVM instalada y le solicitan que la compre.

0

Como se sugirió anteriormente también, puede consultar launch4j para crear el ejecutable para su archivo JAR.Además, hay algo llamado "JExePack" que puede poner un contenedor .exe alrededor de su archivo jar para que pueda redistribuirlo (nota: el cliente siempre necesitaría un JRE para ejecutar el programa en su PC) Exes creado con GCJ No tiene esta dependencia, pero el proceso es un poco más complicado.

3

Eche un vistazo a WinRun4J. Solo es Windows, pero eso es porque Unix tiene scripts ejecutables que se parecen (al usuario) como contenedores. También puede modificar fácilmente WinRun4J para compilar en Unix.

Requiere un archivo de configuración, pero nuevamente, recompilelo con opciones codificadas y funciona como un exe sin configuración.

55

Puede usar el jar tool incluido con el SDK y crear una versión ejecutable del programa.

Así es como se hace.

Estoy publicando los resultados de mi símbolo del sistema porque es más fácil, pero lo mismo se aplica cuando se utiliza JCreator.

En primer lugar crear su programa:

$cat HelloWorldSwing.java 
    package start; 

    import javax.swing.*; 

    public class HelloWorldSwing { 
     public static void main(String[] args) { 
      //Create and set up the window. 
      JFrame frame = new JFrame("HelloWorldSwing"); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      JLabel label = new JLabel("Hello World"); 
      frame.add(label); 

      //Display the window. 
      frame.pack(); 
      frame.setVisible(true); 
     } 
    } 
    class Dummy { 
     // just to have another thing to pack in the jar 
    } 

muy simple, sólo muestra una ventana con "Hello World"

A continuación, compilarlo:

$javac -d . HelloWorldSwing.java 

dos archivos fueron creados dentro de la " start "carpeta Dummy.class y HelloWorldSwing.class.

$ls start/ 
Dummy.class  HelloWorldSwing.class 

Siguiente paso, cree el archivo jar. Cada archivo jar tiene un archivo de manifiesto, donde están los atributos relacionados con el archivo ejecutable.

Este es el contenido de mi archivo de manifiesto.

$cat manifest.mf 
Main-class: start.HelloWorldSwing 

sólo describen lo que es la clase principal (el que tiene el principal método public static void)

Una vez que el manifiesto está listo, el ejecutable jar se invoca.

Tiene muchas opciones, aquí estoy usando -c -m -f (-c para crear jar, -m para especificar el archivo de manifiesto, -f = el archivo debe nombrarse ...) y la carpeta I quiero sacudir

$jar -cmf manifest.mf hello.jar start 

Esto crea el archivo .jar en el sistema

enter image description here

Más tarde, puede hacer doble clic en el archivo y se ejecutará como se esperaba.

enter image description here

para crear el archivo .jar en JCreator sólo hay que usar menú "Herramientas", crear frasco, pero no estoy seguro de cómo el manifiesto va allí.

Aquí hay un video que he encontrado sobre: ​​Create a Jar File in Jcreator.

Creo que puede continuar con los otros enlaces publicados en este hilo una vez que esté familiarizado con este enfoque ".jar".

También puede usar jnlp (Java Network Launcher Protocol) también.

+0

@IlmariKaronen ¡Actualizada! – OscarRyz

1

Java Web Start es una buena tecnología para instalar clientes ricos en Java fuera de internet directamente en el escritorio del usuario final (ya sea que el sistema operativo sea Windows, Mac o * nix). Viene completo con integración de escritorio y actualizaciones automáticas, entre muchas otras cosas.

Para obtener más información sobre JWS, consulte el JWS info page.

+0

FYI, * Java Web Start * y JNLP están en desuso en Java 9 y están programados para su eliminación. Consulte esta [lista de obsolescencia] (http://www.oracle.com/technetwork/java/javase/9-deprecated-features-3745636.html) de Oracle, haciendo referencia a 'JDK-8184998 (no pública)': ** * Java Deployment Technologies está en desuso y se eliminará en una versión futura. ** La funcionalidad Java Applet y WebStart, incluida Applet API, el complemento Java, el Applet Viewer Java, JNLP y Java Web Start, incluida la herramienta javaws, están obsoletos. en JDK 9 y se eliminará en una versión futura. * –

3

Jexecutable puede crear Windows exe para programas Java. Inserta los archivos jar en el archivo exe y puede ejecutarlo como un programa de Windows.

0

Si está utilizando NetBeans, solo presiona f11 y su proyecto será compilado. La ruta predeterminada es projectfolder \ dist

10

Si está utilizando Eclipse, puede intentar los siguientes 7 pasos para obtener un archivo .exe para Windows.

step1step2step3

Ahora usted tiene un archivo JAR. Use java -jar ruta/jarname.jar para ejecutar.

enter image description here


Si desea convertir esto en .exe, puede intentar http://sourceforge.net/projects/launch4j/files/launch4j-3/

STEP5STEP6

STEP 7: Dale el archivo .xml un nombre apropiado y haga clic en " Salvar". El archivo .xml es estándar, no te preocupes por eso. ¡Su archivo ejecutable ahora será creado!

+0

¿Cómo manejan Linux y MacOS los ejecutables? ¿Hacer doble clic en el archivo jar funciona en cualquiera de los SO? –

+0

@androiddeveloper Mientras exista un entorno Java para un sistema operativo, funcionará de la misma manera. – reporter

Cuestiones relacionadas