2012-09-04 7 views
12

Es ist möglich, eine JAR-Datei lokal auszuführen. Der nächste Schritt besteht darin, es auf einem anderen PC auszuführen.Sind JRE und JDK für die Ausführung einer JAR-Datei erforderlich?

Die Frage ist, ob die JRE, das JDK oder beide zum Ausführen der JAR-Datei benötigt werden?

+1

ofcource zu RUN einer Jar-Datei benötigen Sie nur die Java-RUNTIME-Umgebung (jre) und nicht das Java-DEVELOPMENT-Kit (jdk), in dem die jre übrigens enthalten ist. Aber ich weiß nicht wirklich was du meinst mit 'renne diese Jar-Datei in ein anderes System', willst du einfach auf einem anderen PC laufen? – nurgan

Antwort

26

Das JDK enthält die JRE.

Die meisten Programme benötigen nur die JRE (Java Runtime Environment), aber einige Programme benötigen den Compiler zur Laufzeit. In diesem Fall benötigen Sie das JDK.

Wenn Sie das JDK haben, brauchen Sie auch nicht die JRE.

+0

Warum wird der Compiler benötigt, wenn jre schon da ist? – nobalG

+0

@nobalG Da ich jetzt genug Reputation habe, um sie zu kommentieren, ist hier ein Szenario für Sie: Ich hatte eine Situation, in der ich Code schreiben wollte, der anderen Code zur Laufzeit kompiliert und dann diesen kompilierten Code verwendet. In meinem Fall habe ich ein Tool erstellt, das eine Testklasse basierend auf einem bestimmten Framework erstellen, kompilieren, die Klasse laden und Testdaten daraus extrahieren kann, sodass die Daten als Teil eines End-to-End-Tests verwendet werden können . Damit dieses Tool ordnungsgemäß ausgeführt werden kann, muss es mit dem JDK ausgeführt werden, damit es den Java-Compiler verwenden kann. –

4

Zum Ausführen einer JAR-Datei benötigen Sie nur java.exe (Windows). JDK ist das Entwicklungskit für Java und JRE ist die Laufzeitumgebung. JDK enthält JRE.

+1

danke. Kannst du erklären, was ich in Linux brauche? – Dhinakar

+2

Für Linux können Sie Java-SDK mit apt-get installieren, oder verwenden Sie synaptic oder Sie können die bin-Datei von Oracle-Website herunterladen. –

+0

Die erste Anweisung ist nicht wahr, wenn der ausgeführte Code von Elementen abhängt, die nur im JDK enthalten sind, zum Beispiel 'JavaCompiler'. Ein Beispiel finden Sie in dieser Antwort (http://stackoverflow.com/a/2946402/3284624). –

2

Sie benötigen nur JRE.

Wenn die JAR-Datei Sie versuchen, die Main-Klasse hat auszuführen: <classname> Header in Manifest-Datei, dann können Sie einfach die JAR-Datei mit dem Befehl ausführen:

java -jar [your jar file name]

Wenn das Manifest Datei nicht über den Eintrag (und Sie kennen die vollständig qualifizierten Klassennamen der Klasse Hauptfunktion enthält), dann können Sie die jAR-Datei mit dem Befehl ausführen:

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

+0

Dies ist nicht wahr, wenn der ausgeführte Code von Elementen abhängt, die nur im JDK enthalten sind, zum Beispiel 'JavaCompiler'. Ein Beispiel finden Sie in dieser Antwort (http://stackoverflow.com/a/2946402/3284624). –

2

JRE ist genug

JDK laufen für die Entwicklung verwendet wird

+0

Dies trifft nicht zu, wenn der ausgeführte Code von Elementen abhängt, die nur im JDK enthalten sind, zum Beispiel 'JavaCompiler'. Ein Beispiel finden Sie in dieser Antwort (http://stackoverflow.com/a/2946402/3284624). –

1

Sie benötigen ein JRE aber nicht das JDK. Die JRE ist die Java-Laufzeitumgebung und Java-Code kann nicht ohne sie ausgeführt werden. Die .jar-Datei kann eine kompilierte Java-Datei sein, und dazu muss die Java-Laufzeitumgebung ausgeführt werden.

+1

Diese Antwort ist irreführend, weil sie impliziert, dass das JDK nicht ausreichend und nicht relevant ist. Ich glaube, eine genauere Antwort wäre: "Sie brauchen das eine oder das andere. Eines ist genug, weil das JDK die JRE enthält. Verwenden Sie JDK, wenn Sie Java selbst programmieren wollen." –

+0

Dies gilt nicht, wenn der ausgeführte Code von Elementen abhängt, die nur im JDK enthalten sind, zum Beispiel 'JavaCompiler'. Ein Beispiel finden Sie in dieser Antwort (http://stackoverflow.com/a/2946402/3284624). –

2

Zum Ausführen einer JAR-Datei benötigen Sie nur die JRE. Sie können die JAR-Datei mit folgendem Befehl ausführen:

java -jar [JAR-Datei Name]

+1

Das stimmt nicht immer. Wenn das JAR Code enthält, der von Elementen abhängt, die im JDK, aber nicht im JRE enthalten sind (z. B. 'JavaCompiler'), wird es möglicherweise nicht ordnungsgemäß oder überhaupt ohne das JDK ausgeführt. Ein Beispiel finden Sie in dieser Antwort (http://stackoverflow.com/a/2946402/3284624). –

0

Sie wollen die jar-Datei auszuführen; Sie brauchen also nur Java Runtime Umgebung (d. h. JRE).

+0

Dies trifft nicht zu, wenn der ausgeführte Code von Elementen abhängt, die nur im JDK enthalten sind, zum Beispiel 'JavaCompiler'. Ein Beispiel finden Sie in dieser Antwort (http://stackoverflow.com/a/2946402/3284624). –

3

In den Kommentaren zu der angenommenen Antwort fragte nobalG: "Warum wird der Compiler benötigt, wenn jre schon da ist?"

Zum Zeitpunkt des Schreibens hatte ich nicht genug Ruf zu kommentieren, so antwortete ich stattdessen hier.

Ich hatte eine Situation, in der ich Code schreiben wollte, der anderen Code zur Laufzeit kompiliert und dann diesen kompilierten Code verwendet. In meinem Fall habe ich ein Tool erstellt, das eine Testklasse basierend auf einem bestimmten Framework erstellen, kompilieren, die Klasse laden und Testdaten daraus extrahieren kann, sodass die Daten als Teil eines End-to-End-Tests verwendet werden können . Damit dieses Tool ordnungsgemäß ausgeführt werden kann, muss es mit dem JDK ausgeführt werden, damit es den Java-Compiler verwenden kann.

Verwandte Themen