Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Java Virtual Machine?
Ist die JVM eher mit einem internet browser (firefox zB) oder eher mit einem compatibility layer (zb Wine) vergleichbar? wenn man ein JVM-OS erfinden würde, würden dann die Class-Dateien genauso effizient darauf laufen, wie exe-dateiein auf Windows?
2 Antworten
- vor 8 JahrenBeste Antwort
Die JVM ist eine Laufzeitumgebung, die den Bytecode zur Laufzeit in Maschinensprache übersetzt. Sie bildet eine Schnittstelle zur Hardware und zum Betriebssystem. Dadurch lassen sich Java-Programme auf verschiedenen Betriebssystemen und sogar auf verschiedenen Hardware-Architekturen ausführen, solange eine JVM darauf läuft.
"Nativ" ausführbare Dateien, etwa im PE-Format (Windows-„exe“-Dateien) oder ELF u.a. unter Linux enthalten hingegen schon den „fertigen“ Maschinencode. Sie müssen nicht erst interpretiert oder „übersetzt“ werden. Das Betriebssystem muß sie nur in den Arbeitsspeicher laden und sie können dann direkt ausgeführt werden. Allerdings kann man diese Binärdateien, im Gegensatz zu Java-Bytecode, in der Regel nur unter dem Betriebssystem und auf der Hardware-Architektur verwenden für die sie erstellt wurden – sie müssen erforderlichenfalls für jedes System passend compiliert werden.
Da bei Java-Programmen der „Umweg“ über die JVM anfällt, ist es praktisch nicht möglich, daß diese genauso effizient laufen wie nativ ausführbare Dateien; es sei denn, man hat einen speziellen Java-Prozessor, der den Bytecode direkt als Maschinensprache verwendet.
Wine funktioniert noch mal etwas anders. Hierbei wird das Programm nicht in Maschinencode übersetzt (da es ja schon in der Form vorliegt), sondern es werden Windows-Systemaufrufe und Bibliotheken zur Verfügung gestellt, auf die das Programm wiederum zugreifen kann. Es funktioniert daher auch nur auf x86-kompatibler Hardware. Java-Programme lassen sich (ohne erneute Compilierung) auch auf anderer Hardware ausführen, wenn dort eine JVM vorhanden ist.
- FaustLv 7vor 8 Jahren
JVM ist "plattformunabhängig", d.h.sie "übersetzt" den Java-Code in die Maschinensprache, die auf dem jeweiligen Computer installiert ist.
Dabei arbeitet sie nicht wie ein Compiler, sondern wie ein Interpreter.
Allerdings wird dabei eine art "just-in-time-Compiler" verwendet,
d.h. nicht das gesamte Programm wird in einem Stück "compiliert", sondern Befehl für Befehl.
Daher kann man es nicht mit einer .exe-Datei vergleichen