Nur neugierig zu wissen, wann Java dann unabhängige Plattform gemacht wird, ist es spezifische Gründe JVM abhängig gemacht Plattform ..Warum ist die JVM nicht plattformunabhängig, da Java (die Sprache) plattformunabhängig ist?
Antwort
Wenn Sie keine CPU haben, die Java-Bytecode direkt ausführen kann (solche Dinge gibt es), müssen Sie mit dem Betriebssystem interagieren können (z. B. Dateien lesen, Verbindungen zum Netzwerk herstellen, auf dem Bildschirm anzeigen usw.) ..).
Sie können eine JVM in anderen Sprachen schreiben (z. B. Java oder JavaScript), aber letztendlich muss es etwas geben, das mit dem zugrunde liegenden Betriebssystem interagieren kann.
Die JVM Java-Code ausführt, werden aber in plattformspezifische Sprachen wie C/C++/ASM geschrieben usw. Die JVM ist nicht in Java geschrieben und kann daher nicht plattformunabhängig sein.
Tatsächlich werden mehrere JVMs * in Java geschrieben: Maxine und Jikes sind nur zwei Beispiele. –
Weil ein kleiner plattformabhängiger C-Lader benötigt wird, um den Bootstrap zu starten, egal was irgendjemand sagt, die JVM ist nicht 100% java :) –
Sie haben Recht. Obwohl diese VMs C eher als Datenbeschreibungssprache und nicht als Programmiersprache verwenden. Sie verlassen sich meist auf den C-Compiler, um die Datenstrukturen so aufzubauen, wie das Betriebssystem sie erwartet, und nicht so sehr für die Semantik von C. Sie könnten wahrscheinlich ein Java-Programm schreiben, das die richtigen Speicherlayouts generiert, aber warum sollten Sie? Der C-Compiler der Plattform enthält bereits die ganze böse Layout-Logik. –
Die JVM muss plattformabhängig sein, damit Ihr Java auf der spezifischen Plattform ausgeführt werden kann. Eine JVM für Windows übersetzt Ihr Java in andere Systemaufrufe als eine JVM für OS X.
Da müssen Java-Aufrufe der plattformunabhängigen Anwendung in Aufrufe konvertiert werden, die mit dem zugrunde liegenden Betriebssystem kompatibel sind.
fand ich, dass dies eine großartige Antwort auf die Frage war:
JVM übersetzt Bytecode in Maschinensprache
Jedes Java-Programm ist in eine Zwischensprache kompiliert Java-Bytecode genannt. Die JVM wird verwendet, um sowohl den Bytecode in die Maschinensprache für einen bestimmten Computer zu übersetzen als auch tatsächlich die entsprechenden maschinensprachlichen Anweisungen auszuführen. Die JVM und der Bytecode kombiniert geben Java seinen Status als "portable" Sprache.
Maschinensprache ist OS abhängig
die Vorinformationen gegeben, sollte es einfacher sein, eine Antwort auf die Frage abzuleiten. Da die JVM den Bytecode in die Maschinensprache übersetzen muss und da die Maschinensprache vom verwendeten Betriebssystem abhängt, ist klar, dass die JVM von der Plattform (Betriebssystem) abhängig ist. Diese Tatsache kann verifiziert werden, indem Sie versuchen, laden Sie die JVM - Sie erhalten eine Liste der JVM entsprechend verschiedenen Betriebssystemen, und Sie werden offensichtlich wählen, welche JVM für das Betriebssystem gerichtet ist, die Sie ausführen.
Zitat von Is the JVM Platform Dependent?
Diese Antwort ist nützlich ... –
Nein, JVMs sind nicht plattformunabhängig. Tatsächlich sind sie plattformspezifische Laufzeitumgebung, die vom Hersteller bereitgestellt wird. Jede Plattform (Windows, UNIX, Mac usw.) verfügt über eine eigene JVM, um Java-Anwendungen auszuführen. Obwohl der Byte-Code die Verbindung zu mehreren Datenbanken unterstützt.
Denken Sie an Musik gespielt wird in einem MP3-Player, CD-Player und alten treuen Kassettenrekordern (Boom Box). Die Ausgabe ist immer die gleiche, also Musik. Aber die Eingabe (Medien dh.mp3-Dateien für MP3-Player, CDs für CD-Player und Kassetten für Kassettenspieler) variieren je nach System [hier sind die Systeme die verschiedenen Betriebssysteme wie Windows, UNIX, Mac etc ..]. Hoffe, ich war in der Lage, Ihr Problem zu lösen ..
einfach wie - * - macht a +.
Wir alle Java wissen, ist plattformunabhängig
aber OS, wo wir den Code schreiben ist plattformabhängig
und Output sollte so plattformunabhängig sein, wir machen Jvm (die in-zwischen und installiert ist mit jre) plattformabhängig, so dass die Ausgabe unabhängig ist.
Sortieren von. Die _language_ ist plattformunabhängig, muss aber irgendwie auf dieser Plattform laufen. Die Maschinerie dafür hängt von der Plattform ab, auf der sie läuft. – vonbrand
Ich denke, dass es plattformunabhängig sein könnte, wenn viele verschiedene Sprachen (jede in einer bestimmten Plattform geschrieben) kombiniert werden, damit sie ihren eigenen Code dynamisch ändern. Aber alle diese erfordern einige große Anstrengungen, um ihre Portabilität zu zerstören .
JVM übersetzt den Byte-Code, der universell für Maschinencode ist, der maschinenabhängig ist, daher ist JVM plattformabhängig. Aufgrund dieses Bytecodes ist Java plattformunabhängig.
Nein, JVM ist plattformabhängig. Der in Java geschriebene Code ist nicht plattformabhängig. Wenn Sie Java-Code auf einem Windows-Betriebssystem schreiben, können Sie diesen Code unter Linux oder anderen Betriebssystemen ausführen. Aber die JVM für Windows und Linux ist anders. JVM wird in JRE gefunden und wenn Sie JRE von Oracle herunterladen, heißt es JRE für Windows, Linux und andere Betriebssysteme
JVM hängt vom Betriebssystem ab. Damit der Code unabhängig ist, sollte etwas abhängig sein und das ist JVM. Beim Herunterladen von JDK wird gefragt, für welches Betriebssystem Sie es herunterladen möchten. Dies bedeutet eindeutig, dass JVM plattformabhängig ist.
Die JVM ist nicht plattformunabhängig
Der Schlüssel hier ist, dass die JVM auf dem Betriebssystem abhängt - also, wenn Sie Mac OS X läuft Sie eine andere JVM haben, als wenn Sie Windows oder eine andere laufen Betriebssystem. Diese Tatsache kann verifiziert werden, indem Sie versuchen, die JVM für Ihre bestimmte Maschine herunterzuladen - wenn Sie versuchen, sie herunterzuladen, erhalten Sie eine Liste von JVMs, die verschiedenen Betriebssystemen entsprechen, und Sie werden offensichtlich die JVM für das Betriebssystem auswählen Du läufst.
- 1. Ist java Runtime.exec (String []) plattformunabhängig?
- 2. Ist Java RNG (mit Seeds) plattformunabhängig?
- 3. Umgebungsvariablen an eine JVM übergeben, plattformunabhängig
- 4. Wie funktioniert die Knotensatzfunktion plattformunabhängig?
- 5. SFTP in Python? (plattformunabhängig)
- 6. plattformunabhängig/dev/null Ausgabe-Senke für Java
- 7. Plattformunabhängig size_t Formatbezeichner in c?
- 8. Wie bekomme ich Verzeichnispfad, gegeben einen Dateinamen in Lua, die plattformunabhängig ist
- 9. Schreiben zu XMP-Metadaten in Python plattformunabhängig
- 10. Ionic: Warum die erkannte Sprache Sprache ist "ZZ-ZZ"
- 11. Radnamen sind plattformunabhängig, obwohl mein Paket kompilierte Bibliotheken enthält
- 12. Warum ist die JVM mit mehr Speicher, als ich
- 13. Warum ist die Bigdecimal (Doppel-d) Konstruktion immer noch da?
- 14. Warum ist die Typdeklaration in einer statisch typisierten Sprache wichtig?
- 15. java.lang.NoClassDefFoundError wenn die Datei da ist
- 16. Was ist die äquivalente JVM in C#?
- 17. Ist die interpretierte Sprache gesichert?
- 18. Warum ist die getElementsByTagNameNS in Java leer?
- 19. Wie kann ich einen Java-Prozess beenden, der von ant exec plattformunabhängig gestartet wurde?
- 20. Warum ist die Java-Bibliothek so unlesbar?
- 21. Warum ist die Java-Kryptographie eingeschränkt?
- 22. Was ist die beste Programmiersprache für die Handy-Entwicklung mit SMS?
- 23. Java Threading Verwirrung, warum ist die Ausgabe nicht geordnet?
- 24. Warum ist die Random-Klasse nicht statisch?
- 25. Ist die Java LinkedList API nicht redundant?
- 26. Android Studio: Die Installation ist fehlgeschlagen, da APK nicht
- 27. Visual Studio kompiliert, aber die EXE ist nicht da
- 28. Warum ist die Methodenklasse von Java nicht generisch?
- 29. JVM-basierte Sprache ohne Sprachlaufzeit
- 30. Warum sagt Ihnen Java nicht, welcher Zeiger Null ist?
Was fragen Sie eigentlich? – nos
Ich persönlich finde, dass dies nicht geschlossen sein sollte (zur Wiedereröffnung gewählt). Die Frage mag dünn formuliert sein, aber es gibt dort eine "echte" Frage (auch wenn die Antwort auf den ersten Blick für manche offensichtlich scheint). – ChristopheD
@ChristopheD - Könnten Sie bitte die Frage klären? – KatieK