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-Programm an OS anpassen?

Java ist dafür geschaffen, dass es auf mehreren Betriebssystemen die selben Programme zum Laufen bringt. Erfahrungsgemäß empfinde ich Javaprogramme als schwerfällig, aber stabil.

Nun ja, jetzt bin ich kein Programmierer, würde mich aber trotzdem interessieren, was in Endeffekt bei der Anpassung eines Programms an eine andere Plattform noch als Arbeit auf einen zukommt. Ist das nur ein automatisierter Vorgang, man nimmt seinen Quellcode und drückt irgendwo auf Compillieren für OSX, so dass man am Ende anstatt einer exe oder einer deb eine dmz bekommt? Ich weiß natürlich, dass die exe, deb und dmz nur Packvarianten des Programmes sind und diese wohl nicht vom Compiler erzeugt werden, aber wie lange dauert nun eigentlich nach Fertigstellung eines Programmes im Schnitt die Anpassung, so dass es auf mehreren System lauffähig wird?

Sagen wir einfach, JDownloader oder Minecraft im Vergleich zu Firefox, der ja nativ auf allen genannten OS läuft.

2 Antworten

Bewertung
  • MeMeMe
    Lv 7
    vor 1 Jahrzehnt
    Beste Antwort

    Anders als z.B. C oder Pascal werden Java, aber auch .NET-basierte Sprachen, nicht direkt in Maschinensprache sondern in eine Zwischensprache kompiliert und dann erst vor Ort von Zwischensprache in Maschinensprache übersetzt, wenn das Programm gestartet wird. Daher ist es normalerweise nicht nötig irgendwelche Änderungen vorzunehmen um das Programm an die Zielplattform anzupassen - wenn eine Java- bzw. eine .NET-Laufzeitumgebung installiert ist kann das Programm ausgeführt werden. Im Extremfall könnte ein Java oder ein .NET-Programm in 20 Jahren auf einer Prozessorarchitektur laufen, an die man heute noch gar nicht denkt, ohne das man das kompilierte Programm anpassen muss.

    Insbesondere bei Applikationen ist es aber üblich, angepasste Versionen auszuliefern, die dann auch noch eine Hilfe-Datei und ein Symbol für den Desktop mitbringen. Insbesondere unter Unix und Linux werden Java-Programme häufig mit Shell-Skripten versehen, die eine passende Java-Laufzeitumgebung aus der Pfadvariable suchen und dann die Laufzeitumgebung aufrufen um das Programm auszuführen. Das ist dann natürlich mit mehr Aufwand verbunden.

    Etwas anderes ist das natürlich, wenn du Funktionalität benötigst, die von Java bzw. .NET nicht mitgeliefert werden und sich auch nicht in Java bzw. .NET entwickeln lassen. Dann kann man auf in z.B. C oder C++ geschriebene Module zurückgreifen, die dann mit Java bzw. .NET zusammenarbeiten um ihre Funktionen den Java bzw. .NET-Programmen bereitzustellen. Eine solche Bibliothek könnte etwa eine grafische Benutzeroberfläche oder eine Direct3D-Umgebung bereitstellen. Die Eclipse-Entwicklungsumgebung nutzt z.B. SWT, die nicht nur in Java sondern auch in C (C++ ???) geschrieben ist. Dadurch passt sich die Eclipse-Umgebung immer an das Betriebssystem an. Der Nachteil ist natürlich, dass um Eclipse an ein neues System anpassen zu können auch immer der plattformabhängige Teil von SWT portiert werden muss.

  • TWally
    Lv 6
    vor 1 Jahrzehnt

    Java-Programme laufen nicht direkt auf einem Betriebssystem wie z.B. .exe in Windows oder executables in Linux, sondern in einer Laufzeitumgebung Runtime Environment), der virtuellen Maschine (VM). Dafür werden die Java-Programme nicht in Maschinensprache, sondern in Bytecode übersetzt, der von der VM interpretiert wird. Das hat den Vorteil, dass keine Anpassungen an Betriebssysteme nötig sind.

    Wenn es also eine Java-VM für ein bestimmtes BS gibt, kann man das fertige Pogramm dort laufen lassen.

Haben Sie noch Fragen? Jetzt beantworten lassen.