was ist Java SE, Java Development Kit (JDK), und Java Runtime Environmen (JRE)?
Also auf der Website von Oracle steht: "Access Java SE downloads, including the latest versions of Java Development Kit (JDK), Server Java Runtime Environment (Server JRE), and Java Runtime Environment (JRE)."
JDK und JRE scheinen wichtig zu sein und JSE ist "nur" ein Paket womit ich komfortabel beides installieren kann?
Bisherige Recherche hat ergeben, dass man die JRE braucht um Javaprogramme auszuführen und die JDK um Java zu schreiben.
Aber was ist das genauer? JRE ist vllt eine Programmschnittstelle für Java Code? eine API.
Aber was ist JDK? Ich kann Java Code ja auch im Texteditor schreiben und Eclipse und co. sind ja nicht die JDK oder?
würde mich freuen wenn das jemand ein wenig aufklärt :)
3 Antworten
JRE ist das Java Runtime Environment. Dieses wird benötigt, um Programme, die mit dem Java-Compiler in Java-ByteCode übersetzt wurden, auszuführen. Das JRE beinhaltet dabei sowohl ausführbare Programme als auch das Java Framework, also plattformspezifische Bibliotheken, welche die in Java verwendbaren, plattformunabhängigen Funktinalitäten auf die spezifischen Funktionalitäten des Zielsystems abbilden. Diese benötigt man für jedes Zielsystem, um die Plattformunabhängigkeit von Java-Programmen zu gewährleisten.
JDK ist das Java Development Kit. Dieses beinhaltet neben dem JRE auch Tools, die ein Java-Programmierer braucht, um den Java-Quellcode in vom JRE ausführbaren Java ByteCode zu übersetzen.
Java SE bedeutet "Java Standard Edition".
Eclipse und Co sind nur komfortablere Editoren, die dann den Java-Compiler (javac.exe in der Windows-Version) aufrufen, um den von Dir geschriebenen Quellcode in Java-ByteCode zu übersetzen (.class Dateien). Du kannst generell Java-Programme aber auch mit jedem beliebigen Texteditor schreiben.
Eclipse bringt zur Not ein eigenes JDK mit. Wenn Du Eclipse hast, dann hast Du auch ein JDK, denn Eclipse benötigt zum Compilieren Deiner Java-Klassen ein JDK.
Das JDK enthält den Java Compiler, aber nicht nur den. (Suche doch mal auf Deinem Rechner einen Ordner, der mit JDK beginnt. Dann siehst Du, was da alles drin ist).
hmm ok also ich habe mal wie @ohwehohach empfohlen hat einen Ordner namens JDK geöffnet und da war eine Datei module.xml drinnen. die .xml Datei sieht wie folgt aus:
<module name="ibm.jdk" xmlns="urn:jboss:module:1.6">
<properties>
<property name="jboss.api" value="deprecated"/>
</properties>
<resources>
</resources>
<dependencies>
<system export="true">
<paths>
<path name="com/ibm"/>
<path name="com/ibm/crypto"/>
<path name="com/ibm/crypto/provider"/>
<path name="com/ibm/jvm"/>
<path name="com/ibm/jvm/io"/>
<path name="com/ibm/jvm/util"/>
<path name="com/ibm/math"/>
<path name="com/ibm/misc"/>
<path name="com/ibm/misc/resources"/>
<path name="com/ibm/net"/>
<path name="com/ibm/nio"/>
<path name="com/ibm/nio/ch"/>
<path name="com/ibm/security/auth"/>
<path name="com/ibm/security/auth/callback"/>
<path name="com/ibm/security/auth/login"/>
<path name="com/ibm/security/auth/module"/>
<path name="com/ibm/security/bootstrap"/>
<path name="com/ibm/security/util"/>
</paths>
</system>
</dependencies>
</module>
Kernstück ist der Tag <dependencie> und dadrunter der Tag <path> kann man in wenigen Sätzen erklären was das macht? Ich hab mal gehört "Dependencies" sind Programmcode der jemand anders geschrieben hat auf den man zugreift, aber das ist ja kein programmcode sondern eine .xml Datei. Also wie erfolgt hier der Zugriff auf den externen Programmcode?
Was willst Du denn da??? Finger weg! Ich habe nur gesagt, wenn Du wissen willst, was das JDK beinhaltet, dann kannst Du in den Ordner mal reinschauen!
Ok ok ich wollte nur mal aufmachen und gucken :D.
JRE: Laufzeitumgebung - also Sachen die du brauchst, um ein Java-Programm auf deinem spezifischen Betriebssystem ausführen zu können.
JDK: Entwickel-Paket - Sachen die du brauchst um Java-Programme zu programmieren (das JRE ist hier schon enthalten).
Der normale User holt sich also JRE und der Programmierer das JDK.
mhm ok,
ich habe ja in Eclipse zahlreiche Methoden auf die ich ohne weiteres zugreifen kann z.B. System.out.println(). Habe ich diese Methoden nur weil ich die JDK heruntergeladen habe? Oder ist die JDK schlichtweg der Compiler? Oder beides?