Ich frage mich, ob JRE's von verschiedenen Betriebssystemen (zum Beispiel; Windows, Linux, Mac, etc.) alle unterschiedlich und plattformabhängig sind? Der Grund, warum ich das frage ist, weil wenn Java Bytecode plattformunabhängig ist, das bedeutet, dass eine JRE für ein bestimmtes Betriebssystem denselben Bytecode implementieren muss, ein Bit, das speziell für das OS geeignet ist, oder? Danke im Voraus.Sind verschiedene OS JREs anders?
Antwort
Die Java-Laufzeitumgebung (JRE) ist plattformabhängig; obwohl sie den gleichen Java Bytecode ausführen.
Richtig. Im Wesentlichen besteht der Zweck einer JRE darin, Java so zu machen, dass sie plattformunabhängig ist (zumindest so viel wie möglich). –
Die JREs beide sind Plattform und Architektur-spezifisch, aber die Bytecode und JVM-Funktion identisch zwischen allen Plattformen (es gibt immer noch einen Unterschied zwischen Architekturen x86 und x64)
JRE ist ein Akronym für Java Runtime Environment.It wird verwendet, um eine Laufzeitumgebung bereitzustellen, die JVM + -Bibliotheken (die von jvm benötigt werden) und andere Komponenten zum Ausführen von Applets und Anwendungen, die in Java geschrieben sind, bereitstellt.
Die Java Virtual Machine (JVM) ist die virtuelle Maschine, auf der die Java-Bytecodes ausgeführt werden. Die JVM versteht den Java-Quellcode nicht, deshalb kompilieren Sie Ihre * .java-Dateien, um * .class-Dateien zu erhalten, die die von der JVM verständlichen Bytecodes enthalten. Sie schreiben Ihren Code also einmal (generieren Sie .class-Dateien) und führen ihn auf verschiedenen JVMs aus. Es gibt spezifische Implementierungen der JVM für verschiedene Systeme (Windows, Linux ..). JVM dosiert diese Aufgaben Laden von Klassen, Überprüfen von Code, Ausführen von Code und Bereitstellen von Laufzeitumgebung.
Es gibt auch einen anderen Begriff namens JDK, der aus JRE + -Entwicklungstools besteht.
- 1. multiprocessing.Queue und Queue.Queue sind anders?
- 2. Programmgesteuert bestimmen, welche JDK/JREs auf meiner Box installiert sind
- 3. Warum sind nodeNames anders?
- 4. Mehrere Shebangs für verschiedene OS
- 5. Finden Sie alle verfügbaren JREs unter Mac OS X vom Installationsprogramm der Java-Anwendung
- 6. Wie scons verschiedene OS und ADN verschiedene SConscript entsprechend erstellen?
- 7. Interop-Problem - Verschiedene C# -Struktur für verschiedene OS-Architektur
- 8. Was sind verschiedene Bildübergänge in Android verfügbar
- 9. Ausführung von zwei Java Web Apps für verschiedene JREs auf demselben PC
- 10. Sind C-Dotierungen anders als .NET-Doubles?
- 11. Sind Ctype und Ctypes in Python anders?
- 12. sind Python Lambdas anders als Standardfunktionen implementiert?
- 13. Time.now & Created_at sind anders? Ruby on Rails
- 14. Programmgesteuerte Konfiguration von Eclipse Installierte JREs
- 15. Verschiedene HTML-Seiten mit gleichen Codes sehen ganz anders aus
- 16. Dateien aus Dokumentordner auf iPhone Simulator sind manchmal anders
- 17. Was sind verschiedene Links Methoden
- 18. Berühmt "Es sind keine JREs im Arbeitsbereich installiert". Kann es Schaden anrichten?
- 19. Codesignaturzertifikate für Java, Adobe AIR, Authenticode, VBS - sind sie anders?
- 20. Bild Bytestrom ist anders, wenn die Datei auf verschiedene Weise
- 21. Verschiedene Browser geben den gleichen Code anders wieder
- 22. Warum Werte in Tab2 [] sind gleich, wenn Tab [] sind verschiedene
- 23. Android WebView Text Zoom für verschiedene Bildschirme und os Version
- 24. Html Antiforgerytoken Cookie und Eingabewerte sind verschiedene
- 25. Wie sind zwei verschiedene geerbte Zeigeradressen gleich?
- 26. Sind Verschlüsselung und Chiffre verschiedene Dinge?
- 27. Was sind reservierte Dateinamen für verschiedene Plattformen?
- 28. Was sind verschiedene Dot Nix-Dateien?
- 29. Mit gdb Python, um verschiedene OS-Threads zurück zu verfolgen, wenn gdb nicht OS-bewusst
- 30. RSyntaxTextArea Zahlen gefolgt von Buchstaben sind anders markiert [Java]
Java ist plattformunabhängig, da plattformabhängige Compiler/Interpreter für viele Plattformen vorhanden sind. Es ist plattformunabhängig in dem Sinne, dass wir unseren Code nicht ändern müssen, um auf einer anderen Plattform zu laufen, jedoch müssen wir plattformspezifische JRE-Versionen verwenden, um die Programme auszuführen. – 11thdimension
Das ist so ziemlich das Kernkonzept von Java - das JRE ist plattformspezifisch, der Bytecode ist es nicht. – stdunbar
Während Bytecode nicht Betriebssystemabhängig ist, sind Java Virtual Machines. –