SWT-Anwendung für Windows und Linux verteilen

Status
Nicht offen für weitere Antworten.

odysseus

Bekanntes Mitglied
hi,
wir hatten neulich mal die diskussion darüber was swt braucht um ausserhalb von eclipse als client-anwendung laufen zu können, und wir haben drüber gesprochen das swt abhängig vom betriebssystem verschiedene Dinge braucht:

unter windows:

- native libraries (2 .dll Dateien)
- jar (swt.jar)

unter linux:

- native libraries (6 .soDateien)
- jar (swt.jar + swt-pi.jar)

das swt-pi.jar wird nur für gtk benötigt, aber da ich gtk verwende, erwähne ich es.

1. wie man die native libraries einbindet ?
die native libs kann man mit ins jar packen, z.b. in einen unterordner natives. Da liegen dann die 2 .dlls für windows und die 6 .sos für linux. damit die anwendung diese dateien findet startet man die anwendung mit:
java -Djava.library.path=./natives/ -jar Hello.jar

der ordner natives muss in diesem Fall im selben Verzeichnis liegen wie das auszuführende .jar.

1. wie man die jars einbindet ?
Prinzipiell weiss ich wie das geht. Man muss die Abhängigkeit zu den jars im Manifest festhalten, z.b.:

Manifest-Version: 1.0
Main-Class: Hello
Class-Path: ./libraries/swt.jar ./libraries/swt-pi.jar

oder für windows:


Manifest-Version: 1.0
Main-Class: Hello
Class-Path: ./libraries/swt.jar

jede der lösungen funzt unter dem jeweiligen betriebssystem, aber nicht unter beiden. MIST!
das problem ist das die beiden swt.jar sich unterscheiden, also unter windows läuft es nicht mit dem swt.jar von linux und umgekehrt.

ich habs so versucht:

Manifest-Version: 1.0
Main-Class: Hello
Class-Path: ./libraries/swt.jar ./libraries/swt-pi.jar./libraries-win/swt.jar

ich hab also einfach alle 3 jars eingebunden, aber es klappt nicht.

wer weiss wie ich eine swt anwendung so verpacken muss, das der der sie erhält sie nur noch auspacken muss, und ein Startskript ausführt (.sh oder .bat).


und bitte keine swt/awt/swing diskussion ;)
 

Archy

Mitglied
Du musst für jede Zielplatform ein Packet schnüren. Ist doof, aber das ist der Nachteil von SWT.
Auch wenn du Eclipse runterladen möchtest, musst du dich zwischen dem win oder dem linux Download entscheiden. Somit bleibt dir nur die Lösung ein Zip für Windows und eines für Linux zu machen.

Eine Alternative für das swt.jar wäre, wenn du zur Laufzeit deines Programms das OS ermittelst und dann die richtige Jar Datei dynamisch nachlädst. Ich weiss allerdings nicht, ob das auch mit den nativen Libs geht.

gruss,
archy
 

odysseus

Bekanntes Mitglied
wie gesagt, mit den native libs war das kein problem. alle .so Dateien und alle .dll Dateien liegen im Unterordner /natives und werden beim Starten des Jars mit dem Parameter (java -Djava.library.path=./natives/ -jar Hello.jar) referenziert. Ob ich jetzt auf Windows oder Linux bin, das System sucht in diesem Ordner nach native libs und findet sie. Damit kann ich leben.

bloss für das Problem mit dem jar suche ich noch eine Lösung.


Du musst für jede Zielplatform ein Packet schnüren.

das wäre für mich ein K.O. Kriterium, dann benutz ich kein swt mehr. das ist doch voll hässlich. ihr versteht mich sicher. bevor ich pakte für jedes betriebssystem mache, betrachte ich swt lieber als fremdkörper in meinen schönen java-sourcen der verbannt werden muss ;)

hoffe jemand hat noch eine Lösung wie ich gleichzeitig das linux swt.jar und das windows swt.jar einbinden kann.
 

thE_29

Top Contributor
umbenennen heißt die alternative ;)

eines heißt swt.jar das andere swt1.jar wobei zum beistift swt1.jar das fürs linux ist!

bist du ihn linux, benennst du das swt.jar in swt2.jar um und das swt1.jar ins swt.jar und lädst dieses

swt2 = windows
swt1 = linux

swt.jar aktuelle halt, was du brauchst ;)

so würd ichs halt machen, oder es heißt eines swtwindows.jar das andere swtlinux.jar und je nach bedarf erstellst (kopierst) du das richtige hin und nach prog ende löscht es halt wieder (wennst die paar KB speicher halt frei haben willst)


So würd ichs machen, du musst halt vorher eine kleine klasse haben, die kein SWT benutzt die dann mit System.getProperities("os.name") nachsieht welches OS und dann die benötigten jars /libs lädt und dann dein SWT ding startet

PS.: ich hab keine Ahnung was SWT eigentlich is :) und es interessiert mich eigentlich auch nicht
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
MiMa Programmeinstellungen für Anwendung?? AWT, Swing, JavaFX & SWT 54
L JavaFX PdfViewer für JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
alderwaran Swing XML editor plugin für eigene anwendung AWT, Swing, JavaFX & SWT 2
G Swing Update-Funktion für Swing-Anwendung AWT, Swing, JavaFX & SWT 5
Hotkey Freie Icons für Anwendung mit Java Look&Feel AWT, Swing, JavaFX & SWT 4
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
P Swing Anwendung von LayeredPanel AWT, Swing, JavaFX & SWT 6
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
thor_norsk JavaFX Anwendung stürzt ab AWT, Swing, JavaFX & SWT 4
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
G JavaFX Steuerung bzw. Test von externer JavaFX Anwendung (liegt nur als jar vor) AWT, Swing, JavaFX & SWT 9
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
B JavaFX Wie A4-Seite in meiner Anwendung repräsentieren AWT, Swing, JavaFX & SWT 6
B JavaFX JavaFX Anwendung deployen (entw als runnableJAR oder exe-Datei) AWT, Swing, JavaFX & SWT 15
OSchriever Anwendung aus SystemTray öffnen AWT, Swing, JavaFX & SWT 29
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
T Anwendung mit X schliessen AWT, Swing, JavaFX & SWT 1
L JavaFX OpenJFX13 Anwendung exportieren AWT, Swing, JavaFX & SWT 7
D PDF Viewer in SWT-Anwendung AWT, Swing, JavaFX & SWT 8
O Basics - Anwendung erstellen mit mehreren Szenen AWT, Swing, JavaFX & SWT 1
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
J Splashscreen Start Anwendung AWT, Swing, JavaFX & SWT 14
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
I JFileChooser mit System L&F bei anderem L&F der eigtl. Anwendung AWT, Swing, JavaFX & SWT 0
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
D JafaFX Anwendung beenden AWT, Swing, JavaFX & SWT 11
B Wie erstelle ich eine JavaFX Anwendung von diesem Code? AWT, Swing, JavaFX & SWT 3
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
X Anwendung skalierbar AWT, Swing, JavaFX & SWT 3
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
D JavaFX Anwendung hängt sich permanent auf AWT, Swing, JavaFX & SWT 6
L JavaFX Java FX Anwendung nach MVC mit Observer Pattern AWT, Swing, JavaFX & SWT 15
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
I Variabeln speichern in Desktop Anwendung AWT, Swing, JavaFX & SWT 2
V Anwendung im Vollbild zentrieren AWT, Swing, JavaFX & SWT 13
A Swing Textübergabe innerhalb der Anwendung in unterschiedlichen Fenster AWT, Swing, JavaFX & SWT 8
GreyFox JLabel in laufender Anwendung erzeugen AWT, Swing, JavaFX & SWT 6
J JavaFX Anwendung läuft in eclipse, nicht aber exportiert AWT, Swing, JavaFX & SWT 2
P Anwendung kommt nach minimieren nicht mehr in den Vordergrund AWT, Swing, JavaFX & SWT 5
K 3D-Grafik Anwendung von Java in Gnuplot AWT, Swing, JavaFX & SWT 3
M SWT Anwendung in der Symbolleiste verstecken AWT, Swing, JavaFX & SWT 5
B SWT Redesign SWT Anwendung AWT, Swing, JavaFX & SWT 7
M Java anwendung VOR vollbildspielen (schon wieder...) AWT, Swing, JavaFX & SWT 5
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
VfL_Freak Swing Zweiter Monitor von Java-Anwendung ansprechbar ?? AWT, Swing, JavaFX & SWT 2
S Swing Ist meine gute Java Anwendung vorgängig? AWT, Swing, JavaFX & SWT 20
P Klassenaufbau bei komplexerer GUI Anwendung AWT, Swing, JavaFX & SWT 14
S Java GUI Anwendung ohne Konsole starten AWT, Swing, JavaFX & SWT 6
qwerqer Swing Anwendung soll blinken (Taskleiste) AWT, Swing, JavaFX & SWT 3
R Java Desktop Anwendung erstellen. Womit? AWT, Swing, JavaFX & SWT 3
eLogic Fullscreen anwendung aus der man nicht rauskommt AWT, Swing, JavaFX & SWT 37
T Java-Anwendung arbeitet Programm in seltsamer Reihenfolge ab AWT, Swing, JavaFX & SWT 3
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
R Anwendung ohne Symbol in der Taskleiste AWT, Swing, JavaFX & SWT 3
H SWT RAP Anwendung - Tabelle - Theming AWT, Swing, JavaFX & SWT 3
C Swing Eine SWING-Anwendung mittels MVC AWT, Swing, JavaFX & SWT 4
Eldorado Frage zur Anwendung des MVC-Konzept AWT, Swing, JavaFX & SWT 33
B SWT Hello World-Anwendung mit GUI in Eclipse -Problem mit Import von SWT AWT, Swing, JavaFX & SWT 9
G Applet und Swing Anwendung AWT, Swing, JavaFX & SWT 2
J Client Server Anwendung - Mehrere Clients in einer Server GUI AWT, Swing, JavaFX & SWT 11
F Anwendung auf Teskleiste legen AWT, Swing, JavaFX & SWT 3
B MDI Anwendung alle maximierten InternalFrames in Tabs AWT, Swing, JavaFX & SWT 3
T Anwendung starten AWT, Swing, JavaFX & SWT 5
J Anwendung von Swing nach SWT bzw. Eclipse portieren AWT, Swing, JavaFX & SWT 3
2 Tablet-PC Java-Anwendung -> Tablet-Pen Problem !! AWT, Swing, JavaFX & SWT 3
J Swing Anwendung schließen im Listener AWT, Swing, JavaFX & SWT 3
isowiz Vorteil einer RCP Anwendung gegenüber Swing AWT, Swing, JavaFX & SWT 3
? Java-SWT-Anwendung in der Taskleiste nicht sichtbar AWT, Swing, JavaFX & SWT 6
H Netbeans-Anwendung schliessen AWT, Swing, JavaFX & SWT 8
M "Billig Excel" Anwendung mit Swing - Aufwand ? AWT, Swing, JavaFX & SWT 4
G "Views-Abwechseln-Pro " in RCP-Anwendung AWT, Swing, JavaFX & SWT 2
H PopUp-Fenster in einer Java Server Faces Anwendung AWT, Swing, JavaFX & SWT 4
T Auf Fenster innerhalb der Anwendung zugreifen-auch elegant? AWT, Swing, JavaFX & SWT 2
G Organisation Anwendung mit mehreren Eingabedialogen AWT, Swing, JavaFX & SWT 3
H JWindow schließen bei einem Klick außerhalb der Anwendung? AWT, Swing, JavaFX & SWT 19
G SWT DatePicker funzt nicht in eigener Anwendung AWT, Swing, JavaFX & SWT 5
E Bestehende Anwendung erweitern ->JFrame in JPanel verpack AWT, Swing, JavaFX & SWT 4
U Anwendung nicht beenden beim form schliessen? AWT, Swing, JavaFX & SWT 6
T "Echte" MDI Anwendung AWT, Swing, JavaFX & SWT 4
G Auf markierten Text einer anderen Anwendung zugreifen. AWT, Swing, JavaFX & SWT 8
G Relativer Pfad in Rich Client Anwendung AWT, Swing, JavaFX & SWT 4
N Keyboard-Shortcut, der in der ganzen Anwendung funktioniert AWT, Swing, JavaFX & SWT 2
D JDIC Browser in SWT/JFace Anwendung nutzen AWT, Swing, JavaFX & SWT 2
J Swing-Anwendung mit ActionListener AWT, Swing, JavaFX & SWT 7
S Anwendung über Button beenden? AWT, Swing, JavaFX & SWT 4
O Anwendung aus dem Programm heraus neu starten AWT, Swing, JavaFX & SWT 2
U Anwendung mit mehreren "Fenstern" AWT, Swing, JavaFX & SWT 4
R Screenshot von fremder Anwendung AWT, Swing, JavaFX & SWT 4
S SWT-Anwendung als startfähiges Jar unter Linux AWT, Swing, JavaFX & SWT 4
P GUI geschickt von dem Rest der Anwendung trennen AWT, Swing, JavaFX & SWT 6
S HTML-Datei in Anwendung (JEditorPane) AWT, Swing, JavaFX & SWT 5
A Screenshot einer Anwendung erstellen AWT, Swing, JavaFX & SWT 14
A MVC-Pattern - Kreuzweise Anwendung? AWT, Swing, JavaFX & SWT 4
M Komponenten einer Anwendung in JTree strukturiert auflisten? AWT, Swing, JavaFX & SWT 4
G Anwendung um Scrollpane erweitern AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben