Unterschied JRE innerhalb/ außerhalb des JDK Verzeichnisses?

pstein

Mitglied
Wenn ich eine neue J2SE Version installiere dann gibt es 2 JRE Installationen:

C:\Program files\Java\jdk\jre\bin\java.exe

und

C:\Program files\Java\jre6\bin\java.exe

Was ist denn da der Unterschied?

Nochmal: Ich suche NICHT nach dem Unterschiede zwischen JDK und JRE sondern nach dem Unterschied zwischen den zwei JREs!!!!

Danke
Peter
 
Zuletzt bearbeitet von einem Moderator:
Der Unterschied zwischen diesen beiden JRE ist das das JRE im JDK ausschließlich für das JDK selbst zur verfügung steht ...
Wenn du also im JDK java.exe aufrufst *also java\jdk1.x.x_xx\bin\java.exe* wird dadurch die java.exe des JRE *also java\jdk1.x.x_xx\jre\bin\java.exe* aufgerufen.
Soweit so gut ...
Warum wird aber noch mal ein extra JRE installiert ?
Das zweite JRE *also java\jre\* ist für das System damit du im gesamtem System JAVA ausführen kannst. Man könnte mit einigem Aufwand auch das JDK-JRE dafür verwenden ... allerdngs müsstest du dann alles was bei der installation des "normalen" JRE installiert wird selbst machen.


Oder kurz : das dedizierte JRE ist lediglich eine bequeme Art aber eigentlich nicht notwendig
 
@TheRealSpikee: Ok, danke.

Deiner Aussage nach sind also das JRE INNERHALB und das JRE AUSERHALB des JDK gleichwertig.
Wenn ich nun einen binären Vergleich zwischen allen beteiligten Dateien und Programmen in den beiden Verzeichnisbäumen durchführe dann gibt es schon erheblich Unterschiede.

Mit anderen Worten: Da müssen noch andere Unterschiede existieren als nur der popelige Installationspfad.

Warum sonst hätte den Sun damals eine solche Systematik eingeführt?
 
Natürlich gibt es da schon unterschiede ... jedoch kann das JRE innerhalb des JDK mindestens genau das was das JRE außerhalb des JDK kann ... und darüber hinaus noch so einiges mehr.

Um dir das ganze etwas sehr deutlich zu veranschaulichen :

Wenn du in der CMD java\jdk\bin\javac aufrufst macht dieser aufruf nichts anderes als java\jdk\jre\bin\java mit entsprechenden Parametern aufzurufen ... dann der Compiler ist selbst in Java geschrieben und liegt in irgendeinem JAR des JDK rum ... weis aber nicht genau wo ...
Du könntest zwar die selben Parameter *sofern du sie rausbekommen würdest* auch an das java\jre\bin\java richten ... jedoch würde sich das auf grund nicht vorhandener abhängigkeiten weigern die Klassen auszuführen ...

Und aus genau diesem Grund gibt es Unterschiede zwischen den beiden JRE ... wobei aber wie gesagt das JRE innerhalb des JDK mehr als das "normale" JRE kann ... aber mindestens genau dasselbe ...
 

Zurück
Oben