proyecto programa hacer enviar empaquetar ejecutar ejecutable distribuir datos crear con como archivo aplicacion java file batch-file

java - programa - empaquetar jar en exe



Ejecute.jar desde archivo por lotes (14)

De la misma manera que lo haría en la consola de comandos. Copie exactamente esos comandos en el archivo por lotes.

.jar un archivo .jar ejecutable. ¿Cómo puedo ejecutar el .jar usando un archivo por lotes sin mencionar una ruta de clase?


Debe asegurarse de especificar el classpath en el archivo MANIFEST.MF. Si está utilizando Maven para hacer el empaque, puede configurar los siguientes complementos:

1. maven-depedency-plugin:
2. maven-jar-plugin:

<plugin> <artifactId>maven-dependency-plugin</artifactId> <version>${version.plugin.maven-dependency-plugin}</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>${version.plugin.maven-jar-plugin}</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> </archive> </configuration> </plugin>

El archivo de manifiesto resultante se empaquetará en el archivo ejecutable bajo META-INF y se verá así:

Manifest-Version: 1.0 Implementation-Title: myexecjar Implementation-Version: 1.0.0-SNAPSHOT Built-By: razvanone Class-Path: lib/first.jar lib/second.jar Build-Jdk: your-buildjdk-version Created-By: Maven Integration for Eclipse Main-Class: ro.razvanone.MyMainClass

El script de Windows se vería así:

@echo on echo "Starting up the myexecjar application..." java -jar myexecjar-1.0.0-SNAPSHOT.jar

Esta debería ser una configuración completa para construir un archivo ejecutable usando Maven :)


Deberías probar este:

java -cp youJarName.jar your.package.your.MainClass


En Windows puede usar el siguiente comando.

start javaw -jar JarFile.jar

Al hacerlo, la Ventana del símbolo del sistema no permanece abierta.


Hay una solución para esto que no requiere especificar la ruta del archivo jar dentro de .bat. Esto significa que el contenedor puede moverse en el sistema de archivos sin cambios, siempre que el archivo .bat siempre se encuentre en el mismo directorio que el contenedor. El código .bat es:

java -jar %~dp0myjarfile.jar %*

Básicamente, %0 se expandiría a la ruta completa de .bat, y %~dp0 expandiría a la ruta completa de .bat, excepto el nombre de archivo. Entonces %~dp0myjarfile.jar es la ruta completa de myjarfile.jar colocada con el archivo .bat. %* tomará todos los argumentos dados al .bat y lo pasará al programa Java. (ver: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true )


Mi comprensión de la pregunta es que el OP está intentando evitar especificar un camino de clase en su línea de comando. Puede hacer esto colocando el class-path en el archivo Manifest.

En el manifiesto:

Class-Path: Library.jar

Este documento proporciona más detalles:

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

Para crear un jar utilizando un archivo de manifiesto denominado MANIFEST, puede usar el siguiente comando:

jar -cmf MANIFEST MyJar.jar <class files>

Si especifica rutas de clase relativas (es decir, otros archivos jar en el mismo directorio), puede mover el archivo jar y el archivo por lotes mencionado en la respuesta de mdm seguirá funcionando.


Para ejecutar un archivo .jar desde la línea de comando, simplemente use:

java -jar YourJar.jar

Para hacer esto como un archivo por lotes, simplemente copie el comando en un archivo de texto y guárdelo como .bat :

@echo off java -jar YourJar.jar

El @echo off solo asegura que el segundo comando no se imprime.


Pasos 1- Crea / exporta un archivo jar ejecutable fuera de tu proyecto.

2- Crea un archivo .bat con el siguiente contenido

@Echo off set classpath="c:/jars/lib/*****.jar;c:/jars/lib/*****.jar;c:/extJars/****.jar" java -cp %classpath%;c:/apps/applName/yourJar.jar com.****.****.MainMethod args1 args2 ... @pause

Se requiere 3- class class para cualquier tarro externo que esté utilizando.

4- Coloque el archivo .bat y el archivo jar en la misma carpeta.

5- Según el comando java -cp, indique la ubicación exacta del archivo jar y el nombre completo del método principal, seguido de la lista de argumentos según los requisitos.


Puede crear un archivo por lotes con extensión .bat con los siguientes contenidos

Use java para .jar que no tiene UI y es una aplicación de línea de comando

@ECHO OFF start java -jar <your_jar_file_name>.jar

Usa javaw para .jar que tiene una interfaz de usuario

@ECHO OFF start javaw -jar <your_jar_file_name>.jar

Asegúrese de que su JAVA_HOME esté configurado en las variables de entorno.


Si desea que un archivo por lotes ejecute un archivo jar, cree un archivo en blanco llamado runjava.bat con los contenidos:

java -jar "C:/myjarfile.jar"


Si hace doble clic en el archivo .jar en Windows Explorer, entonces debería poder usar esto:

start myapp.jar

en tu archivo por lotes

El comando de start Windows hace exactamente lo mismo detrás de las escenas como hacer doble clic en un archivo.


puede usar el siguiente comando en el archivo .bat recién creado:

@echo off call C:/SWDTOOLS/**PATH/TO/JAVA**/java_1.7_64/jre/bin/java -jar workspace.jar

Indique la ruta de Java si hay múltiples versiones de Java instaladas en el sistema y asegúrese de haber especificado el método principal y creado el archivo de manifiesto al crear el archivo jar.


cd "Your File Location without inverted commas"

ejemplo: cd C: / Users ***** / Desktop / directory / target

java -jar myjar.jar

ejemplo bat archivo se ve así:

@echo OFF cd C:/Users/****/Desktop/directory/target java -jar myjar.jar

Esto funcionará bien.


java -jar "C://myjarfile.jar"

Es posible que deba agregar "//" al comando. ¡Prueba esto!