Ejecutar archivo JAR en Windows

228

Tengo un archivo JAR llamado helloworld.jar . Para ejecutarlo, estoy ejecutando el siguiente comando en una ventana de línea de comandos:

java -jar helloworld.jar

Esto funciona bien, pero ¿cómo lo ejecuto con doble clic en su lugar? ¿Necesito instalar algún software?

DonX
fuente
1
Siga los pasos descritos aquí: Ejecutar un Jar en Vista con un doble clic
RealHowTo

Respuestas:

123

La ruta más fácil es probablemente actualizar o reinstalar el Java Runtime Environment (JRE).

O esto:

  • Abra el Explorador de Windows, desde Herramientas seleccione 'Opciones de carpeta ...'
  • Haga clic en la pestaña Tipos de archivo, desplácese hacia abajo y seleccione Tipo de archivo JAR.
  • Presione el botón Avanzado.
  • En el cuadro de diálogo Editar tipo de archivo, seleccione abrir en el cuadro Acciones y haga clic en Editar ...
  • Presione el botón Examinar y navegue a la ubicación del intérprete de Java javaw.exe.
  • En la aplicación utilizada para realizar el campo de acción, debe mostrar algo similar a C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(Nota: la parte que comienza con 'javaw' debe ser exactamente así; la otra parte del nombre de la ruta puede variar según la versión de Java que esté utilizando ) luego presione los botones OK hasta que todos los cuadros de diálogo estén cerrados.

Que fue robado de aquí: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

Brian Kelly
fuente
13
Creo que la manera fácil es hacer clic derecho en cualquier archivo jar> abrir con y elegir "Java runtime environment". :)
Kassem
al hacerlo, siempre me da este error "El binario SE de la plataforma Java ha dejado de funcionar" ... ¿Alguien puede ayudar, cuál podría ser el problema?
Faizan
1
@Faizan: su problema suena como un problema separado. Veo algunos resultados de SO y Google para "La plataforma Java SE binary ha dejado de funcionar". Los revisaría.
Brian Kelly
26
no hay pestaña Tipos de archivo en las Opciones de carpeta en win 7
Radu Simionescu
79

En Windows Vista o Windows 7, se ha eliminado el editor de asociación de archivos manual .

La forma más fácil es ejecutar Jarfix , una herramienta gratuita pequeña pero poderosa. Simplemente ejecútelo y sus aplicaciones Java volverán ... haga doble clic nuevamente.

Hendy Irawan
fuente
Gracias por el consejo, si solo hubiera una manera de deshacerse de estas pequeñas cajas nuevas (no) "utilizables"
LoG
55

Si necesita distribuir su archivo .jar y hacer que sea ejecutable en las computadoras Windows de otras personas, puede crear un archivo .bat simple como este en el símbolo del sistema:

java -jar MyJavaTool.jar

y coloque el archivo .bat en el mismo directorio que su archivo .jar.

Demorf
fuente
Pero, ¿cómo se ejecuta el .bat? ¿Sería esta la misma estrategia para que la aplicación Java abra también una sesión de línea de comandos?
Ungeheuer
1
Bueno, no, simplemente abrirías el archivo bat. No estoy seguro de entender tu pregunta.
26

Si tiene un archivo jar llamado Example.jar, siga estas reglas:

  1. Abre un notepad.exe
  2. Escribir : java -jar Example.jar
  3. Guárdalo con la extensión .bat
  4. Cópielo en el directorio que tiene el .jararchivo
  5. Haga doble clic para ejecutar su .jararchivo
Pusu
fuente
44
1) Eso no funcionaría en Mac. o Unix 2) Crea un archivo innecesario. 3) Se proporcionaron mejores respuestas hace más de 2 años. 4) ... Y esa palabra es 'tú'.
Andrew Thompson
¡Excelente manera de ejecutar un jar en Windows! Tampoco oculta la entrada de la línea de comandos, así que pude ver por qué mi jar no se estaba ejecutando como pensé que debería. Gracias.
Joe
15

Un efecto secundario interesante de esto causa un problema al iniciar archivos jar ejecutables en el símbolo del sistema.

Si lo intentas (en un símbolo del sistema):

jarfile.jar parameter

No hay alegría, porque esto se está traduciendo a lo siguiente (que no funciona):

javaw.exe -jar jarfile.jar parameter

Sin embargo, el siguiente comando funciona:

java.exe -jar jarfile.jar parameter

Si cambia la asociación en el administrador de archivos como se describe anteriormente a:

"C:\Program Files\Java\j2re1.4.2_04\bin\java.exe" -jar "%1" %*

Entonces puedes escribir:

jarfile.jar parameter

en el símbolo del sistema y ahora funcionará!

EDITAR: (Sin embargo, aparece una ventana de consola negra cuando ejecuta una aplicación Java basada en formularios (que no es de consola), por lo que esta no es una solución ideal)

Si ejecuta estos archivos jar haciendo doble clic en ellos en Windows, no se pasarán parámetros, por lo que su código Java debe manejar la excepción de desbordamiento de pila e incluir una función de "presionar una tecla" al final o la ventana simplemente desaparecerá.

Para pasar un parámetro en Windows, debe crear un acceso directo al archivo jar, que incluye el parámetro en la línea de destino (haga clic con el botón derecho en el acceso directo y seleccione propiedades), no puede agregar parámetros al icono del archivo jar en este camino.

No hay una solución única y consistente aquí, pero tendría el mismo problema con cualquier otra aplicación de consola.

Hay una aplicación gratuita de Windows llamada "bat to exe" que puede usar para crear un archivo exe a partir de un archivo .bat con la línea de comando adecuada. También puede incrustar el archivo jar en el exe con esta aplicación y hacer que lo limpie cuando haya terminado de ejecutarse, por lo que esta puede ser una solución más elegante.

Beto
fuente
11

Primero establezca la ruta en cmd (símbolo del sistema):

set path="C:\Program Files\Java\jre6\bin"

luego escribe

java -jar yourProgramname.jar 
suraj
fuente
9

En Windows XP * solo necesita 2 comandos de shell :

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

obviamente, usando la ruta correcta para el JRE y cualquier nombre que desee en lugar de myjarfile.

Para verificar la configuración actual:

   C:\>assoc .jar  
   C:\>ftype jarfile  

esta vez usando el valor devuelto por el primer comando, si lo hay, en lugar de jarfile.

* no probado con Windows 7

usuario85421
fuente
1
Un usuario anónimo lo probó con Windows 7 (JRE 7). Dicen que funciona si ejecuta cmd como administrador.
Jeremy Stein
La mejor solución en mis ojos. Funciona hasta Windows 10. Los comandos ftype y assoc deben ejecutarse en una ventana de símbolo del sistema con privilegios de administrador.
SixDoubleFiveTreeTwoOne
7

Hay forma sin requerir que el usuario haga cambios en su PC. Runtime.getRuntime.exec () nos permite iniciar cmd.exe y ejecutar comandos dentro de él. Por lo tanto, es posible que el programa Java se ejecute en el símbolo del sistema cuando el usuario hace clic en el archivo .jar.

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}
dario111cro
fuente
6

Además de todas las otras sugerencias, hay otra cosa que debes considerar. ¿Su helloworld.jar es un programa de consola? Si es así, entonces no creo que pueda convertirlo en un archivo jar de doble clic. Los programas de consola usan la ventana de shell cmd.exe normal para su entrada y salida. Por lo general, el "lanzador" jar está vinculado a javaw.exe que no crea una ventana de shell de comandos.


fuente
4

En regedit, abrir HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Haga doble clic en el valor predeterminado a la izquierda y agregue -jar entre la java.exeruta y el %1argumento " ".

grwww
fuente
Esto fue. Gracias. Todas las otras cosas no ayudaron.
raedma
3

Desea verificar un par de cosas; si este es su propio archivo jar, asegúrese de haber definido una clase Main en el manifiesto. Como sabemos que puede ejecutarlo desde la línea de comandos, lo otro que debe hacer es crear un acceso directo de Windows y modificar las propiedades (tendrá que mirar alrededor, no tengo una máquina Windows para mirar) para que el comando que ejecuta al abrir es el comando java -jar que mencionó.

La otra cosa: si algo no está confundido, debería funcionar de todos modos; compruebe y asegúrese de que tiene Java asociado con la extensión .jar.

Charlie Martin
fuente
1

Desafortunadamente, no es tan fácil ya que Microsoft ha eliminado el diálogo avanzado de asociación de archivos en las últimas ediciones de Windows. - Con las versiones más recientes de Windows, solo puede especificar la aplicación que se utilizará para abrir el archivo .jar.

La fijación de la apertura de archivos .jar en Windows requiere dos pasos.

  1. Abra el Panel de control y elija "Programas predeterminados -> Establecer asociaciones". Busque la extensión .jar ( archivo JAR ejecutable ) allí y elija Java como programa predeterminado para abrir esta extensión. Probablemente aparecerá como " Plataforma Java (SE) ". Una alternativa más rápida tal vez es hacer clic derecho en un archivo .jar y luego cambiar el programa asociado haciendo clic en el botón "Cambiar ...".

  2. Ahora abra el regedit y abra la HKEY_CLASSES_ROOT\jarfile\shell\open\commandllave. Por suerte para nosotros, podemos especificar parámetros allí para el (Default)valor. En mi sistema Windows se ve así: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*pero en la mayoría de los casos es la siguiente cadena:C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

NOTAS

  • No lo use java.exeallí, ya que abrirá la ventana de shell.
  • La herramienta jarfix mencionada en este hilo probablemente no haga más que la modificación del registro por usted. Prefiero el método de cambio de registro manual, ya que eso implica que el administrador del sistema puede "impulsar" el cambio de registro a todas las estaciones de trabajo en la red.
DejanLekic
fuente
1

Tuve el mismo problema en Windows 10. Lo solucioné haciendo clic derecho en " helloworld.jar ", vaya a propiedades y haga clic en el botón Cambiar en "Se abre con:" y seleccione " Buscar otra aplicación en esta PC ". En el cuadro de diálogo " Abrir con ... ", vaya a la ubicación de su carpeta Java en su PC y abra la carpeta jdk correspondiente y luego abra la carpeta bin y seleccione " javaw.exe " desde allí. Luego, la próxima vez, su " helloworld.jar " se abrirá normalmente.

Ejemplo habitual de ubicación de Java: " C: \ Archivos de programa (x86) \ Java \ jdk1.8.0_111 \ bin ".

Samintha Kaveesh
fuente
1

Otra forma de ejecutar archivos jar con un clic / doble clic es anteponer "-jar" al nombre del archivo. Por ejemplo, cambiaría el nombre del archivo MyJar.jara -jar MyJar.jar.

Debe tener los .classarchivos asociados java.exe, por supuesto. Puede que esto no funcione en todos los casos, pero me ha funcionado la mayoría de las veces.

user4343596
fuente
1

PreScript : si su solicitud aparece y desaparece inmediatamente, la razón es que su programa se ejecuta y se cierra automáticamente. Intente poner un escáner al final para finalizar y mantendrá su solicitud esperando la entrada antes de finalizar. (O use el retraso tal vez)

Estaba en la misma situación, donde ejecutar .jar desde cmd funcionaba bien, pero hacer doble clic no hacía nada.

Solución: abra cualquier editor de texto y escriba la línea de comando: java -jar Example.jar Guarde el archivo como un archivo .bat. Ejecute este archivo bat para obtener la salida necesaria.

Dando un paso adelante, puede convertir este archivo bat a un archivo exe utilizando una herramienta GUI simple como Bat To Exe Converter.

Ahora puedes compartir tu .jar como una distribución en un archivo .exe que cualquiera puede usar, solo asegúrate de mantener todos los archivos juntos. (Especialmente el archivo .jar y .bat hacen que .bat sea solo un indicador de cmd) (Cómo se siente lógico)

Soy bastante nuevo en el desarrollo y estoy aprendiendo mucho. Por favor, disculpe cualquier error si se comete. Las sugerencias son bienvenidas.

Manthan_Admane
fuente
1

usar .batarchivo:

Ponga su comando en un archivo .bat. aquí, tu comando será java -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

Guárdelo y haga doble clic en el archivo bat para ejecutar su jar. Su nombre de archivo será algo así comofileName.bat

Bandham Manikanta
fuente
0

Si usa eclipse para crear sus archivos java, puede optar por exportarlo como un archivo jar ejecutable. Hice esto con mis programas y puedo hacer clic en el jar y se ejecutará así. Esto funcionará en ambas ventanas, así como en os x.


fuente
Sin embargo, no parece estar garantizado que funcione, según esta pregunta
doubleDown el
0

Hacer un start.bat fue lo único que funcionó para mí.

abra un documento de texto e ingrese. java -jar como se llame el tuyo .jar

guárdelo como start.bat en la misma carpeta que el archivo .jar que desea ejecutar. y luego ejecuta el. murciélago

freeloaderzful
fuente
0

Si necesita ejecutar el archivo jar haciendo doble clic en él, debe crearlo como un " JAR ejecutable ". puedes hacerlo simplemente con tu IDE.

Si está utilizando eclipse, siga estos pasos:

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

Puede encontrar más información en la página de ayuda de Eclipse: ENLACE

Nomesh DeSilva
fuente
0

Hay muchos métodos para ejecutar el archivo .jar en Windows. Uno de ellos está utilizando el símbolo del sistema.

Pasos:

  1. Abrir símbolo del sistema (Ejecutar como administrador)
  2. Ahora escriba el comando "cd \" para el directorio raíz
  3. Escriba "java jar filename.jar" Nota: también puede usar aplicaciones de terceros como WinRAR, jarfix, etc.
irisrei08
fuente
0

Crear .batarchivo:

start javaw -jar %*

Y elija la aplicación predeterminada para abrir .jarcon este .batarchivo.

Se cerrará cmdcuando inicie su .jararchivo.

hong4rc
fuente
0

Para compilar:

javac  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java

Para correr:

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
anil kumar meena
fuente
0

En realidad, también me enfrenté a este problema, lo resolví creando un .bat runner para mi archivo jar.

Aquí está el código:

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



Luego, en su clase de aplicación Principal, haga esto:

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


Tenga en cuenta que

  1. este código (mi código) funciona solo con un archivo jar, no con un archivo de clase.

  2. el archivo jar debe tener el mismo nombre que la cadena "jarName" es la clase Main

ZOLDIK
fuente