2012-09-04 31 views
12

Es posible ejecutar un archivo JAR localmente. El siguiente paso es ejecutarlo en una PC diferente.¿Se requieren JRE y JDK para ejecutar un archivo JAR?

La pregunta es si el JRE, el JDK o ambos deben ejecutar el archivo JAR.

+1

ofcource para EJECUTAR un Jar-File solo necesita el Java-RUNTIME-Environment (jre) y no el Java-DEVELOPMENT-Kit (jdk) en el que se incluye el jre por cierto. Pero realmente no sé a qué te refieres con 'ejecutar este archivo jar en algún otro sistema', ¿simplemente quieres entrar en una PC diferente? – nurgan

Respuesta

26

El JDK contiene el JRE.

La mayoría del programa solo necesita JRE (Java Runtime Environment), pero algunos programas necesitan el compilador en tiempo de ejecución, en cuyo caso necesita el JDK.

Si tiene el JDK, no necesita el JRE también.

+0

¿Por qué se necesita el compilador si jre ya está allí? – nobalG

+0

@nobalG, ya que ahora tengo suficiente reputación para comentar, he aquí un escenario para tener en cuenta: tuve una situación en la que quería escribir código que compila otro código en tiempo de ejecución y luego usa ese código compilado. En mi caso, estaba creando una herramienta que podría tomar una clase de prueba basada en un marco particular, compilarla, cargar la clase y extraer datos de prueba de ella para que los datos puedan ser utilizados como parte de una prueba de extremo a extremo. . Para que esta herramienta se ejecute correctamente, debe ejecutarse con el JDK para que pueda usar el compilador de Java. –

4

Para ejecutar un archivo jar solo necesita java.exe (windows). JDK es el kit de desarrollo para Java y JRE es el tiempo de ejecución. JDK contiene JRE.

+1

gracias. ¿Puedes explicar lo que necesito en Linux? – Dhinakar

+2

Para Linux puede instalar SDK de Java usando apt-get, o usar Synaptic o puede descargar el archivo bin desde el sitio Oracle. –

+0

La primera declaración no es verdadera si el código que se está ejecutando depende de los elementos incluidos solo en el JDK, por ejemplo, 'JavaCompiler'. Ver [esta respuesta] (http://stackoverflow.com/a/2946402/3284624) para ver un ejemplo. –

2

Solo necesita JRE.

Si el archivo jar que está intentando ejecutar tiene la principal Clase: <classname> cabecera presente en el archivo de manifiesto, a continuación, sólo tiene que ejecutar el archivo jar por el comando:

java -jar [your jar file name]

Si el manifiesto archivo no tiene esa entrada (y usted sabe el nombre de clase completo de la clase que contiene la función principal), a continuación, puede ejecutar el archivo jar por el comando:

java -cp [absolute path to jar file] [full qualified class name containing the main function]

+0

Esto no es verdadero si el código que se está ejecutando depende de elementos incluidos solo en el JDK, por ejemplo, 'JavaCompiler'. Ver [esta respuesta] (http://stackoverflow.com/a/2946402/3284624) para ver un ejemplo. –

2

JRE es suficiente para hacer funcionar

JDK se utiliza para el desarrollo

+0

Esto no es verdadero si el código que se está ejecutando depende de elementos incluidos solo en el JDK, por ejemplo, 'JavaCompiler'. Ver [esta respuesta] (http://stackoverflow.com/a/2946402/3284624) para ver un ejemplo. –

1

Es necesario un JRE pero no el JDK. El JRE es el entorno de tiempo de ejecución de Java y el código de Java no se puede ejecutar sin él. El .jar es un archivo java compilado y necesita que se ejecute el entorno de tiempo de ejecución de java.

+1

Esta respuesta es engañosa porque implica que el JDK no es suficiente y no es relevante. Creo que una respuesta más precisa sería: "Necesitas uno u otro. O uno es suficiente, porque el JDK contiene el JRE. Usa JDK si tienes la intención de hacer la programación Java tú mismo". –

+0

Esto no es verdadero si el código que se está ejecutando depende de elementos incluidos solo en el JDK, por ejemplo, 'JavaCompiler'. Ver [esta respuesta] (http://stackoverflow.com/a/2946402/3284624) para ver un ejemplo. –

2

Para ejecutar un archivo jar solo necesita el JRE. Puede ejecutar el archivo JAR con el siguiente comando:

java-jar [Nombre archivo JAR]

+1

Esto no siempre es cierto. Si el contenedor contiene código que depende de los elementos que se incluyen con el JDK pero no el JRE (por ejemplo, "JavaCompiler"), es posible que no se ejecute correctamente o no se ejecute en absoluto sin el JDK. Ver [esta respuesta] (http://stackoverflow.com/a/2946402/3284624) para ver un ejemplo. –

0

¿Desea ejecutar el archivo jar; por lo que solo necesita el entorno Java Runtime (es decir, JRE).

+0

Esto no es verdadero si el código que se está ejecutando depende de elementos incluidos solo en el JDK, por ejemplo, 'JavaCompiler'. Ver [esta respuesta] (http://stackoverflow.com/a/2946402/3284624) para ver un ejemplo. –

3

En los comentarios sobre la respuesta aceptada nobalG preguntó: "¿Por qué se necesita el compilador si jre ya está allí?"

En el momento de la redacción de este artículo, no tenía la reputación suficiente para comentar, por lo que respondí aquí.

Tuve una situación en la que quería escribir código que compila otro código en tiempo de ejecución y luego usa ese código compilado. En mi caso, estaba creando una herramienta que podría tomar una clase de prueba basada en un marco particular, compilarla, cargar la clase y extraer datos de prueba de ella para que los datos puedan ser utilizados como parte de una prueba de extremo a extremo. . Para que esta herramienta se ejecute correctamente, debe ejecutarse con el JDK para que pueda usar el compilador de Java.

Cuestiones relacionadas