2 Stimmen

java auf allen Plattformen

Wenn Sie eine Desktop-Anwendung in Java für Windows, Mac und Linux programmieren wollen, wird der Code dann für alle gleich sein?

und Sie ändern einfach die grafische Benutzeroberfläche so, dass die Windows-Anwendung Windows-ähnlicher wird und so weiter?

wie funktioniert es, ohne ins Detail zu gehen?

5voto

Dan Dyer Punkte 52915

Eines der Verkaufsargumente von Java ist, dass es "Write Once, Run Anywhere" ist (so ziemlich).

Der kompilierte Bytecode wird von der Java Virtual Machine (JVM) ausgeführt. Die JVM ist spezifisch für die Plattform, auf der sie läuft, aber derselbe Bytecode kann von jeder Plattform ausgeführt werden, die über eine JVM verfügt. Der Code muss nicht neu kompiliert werden.

Swing ist das plattformübergreifende GUI-Toolkit von Java. Sie können es so konfigurieren, dass es eine grafische Benutzeroberfläche hat, die auf verschiedenen Plattformen gleich aussieht (es wird auf keiner von ihnen nativ aussehen), oder Sie können es anweisen, das am besten geeignete Aussehen für die Plattform zu verwenden, auf der es ausgeführt wird. Unter Windows sieht sie also wie eine Windows-Anwendung aus, unter OS X wie eine native Mac-Anwendung.

3voto

Aiden Bell Punkte 27753

Sie verwenden generische UI-Bibliotheken, die dieselbe Benutzeroberfläche auf verschiedenen Plattformen darstellen.

Einige verwenden eine eigene Zeichnung/Widget-Konstruktion, andere abstrahieren die nativen UI-Elemente.

Einfach.

Beispiele: Schaukel , AWT (mit Fehlern, siehe unten) et QT(mit Vorbehalten) ou SWT (die Leute scheinen es zu mögen)

2voto

Matt Punkte 10189

Nicht nur der Code wird derselbe sein, sondern auch die zusammengestellt Das Ergebnis ist dasselbe (die Ausgabe von javac, dem Java-Compiler), zumindest theoretisch. Die auf jedem Betriebssystem installierte JVM kümmert sich um die Übersetzung der kompilierten Ausgabe (genannt "Bytecode") in den plattformspezifischen Code. Das bedeutet, dass Sie z. B. Ihre Java-Anwendung unter Linux entwerfen und erstellen und sie unter Windows oder Mac ausführen können.

2voto

Kaleb Brasee Punkte 49955

Der Code selbst läuft auf jeder Plattform, die über eine virtuelle Java-Maschine verfügt, da alle JVMs den exakt gleichen Bytecode in betriebssystemspezifischen Maschinencode übersetzen.

Für das Aussehen und die Handhabung gibt es eine Methode ( UIManager.getSystemLookAndFeelClassName() ), die es Ihnen ermöglicht, die Benutzeroberfläche so zu gestalten, dass sie mit dem Rest des Betriebssystems übereinstimmt. Es liefert unterschiedliche Ergebnisse auf verschiedenen Betriebssystemen.

1voto

Stephen C Punkte 665668

Wenn Sie möchten, dass die Benutzeroberfläche Ihrer Anwendung unter Windows "Windows-ähnlich" und unter Mac "Mac-ähnlich" ist, sollten Sie einen Blick auf die SWT- und RCP-Technologie werfen, die Eclipse zugrunde liegt. SWT hat genau die Eigenschaften, die Sie sich wünschen.

Der Nachteil (wenn Sie es so nennen wollen) ist, dass Ihre Anwendung keine bestehenden AWT/Swing-basierten Bibliotheken wiederverwenden kann. Und natürlich müssen Sie lernen, wie man den SWT-Stack verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X