SWT-Applikation unter Windows starten


pcAlko

Grünschnabel
Hallo Leute!

Ich habe eine SWT-Applikation erstellt
lauft wunderbar unter Linux
im class-path habe ich auch die org.eclipse.swt.gtk.linux.x86_64_3.3.2.v3349.jar

unter Windows funktionierts auch
wenn ich die linux.jar heraus nehme
und stattdessen schreibe ich org.eclipse.swt.win32.win32.x86_3.3.3.v3349.jar in den Class-Path.

wenn beide jar files im Class-Path stehen muss die jar datei vom aktuellen OS die erste sein.

Ich möchte aber nicht für jedes OS ein eigenes JAR erstellen
sonst hebt sich ja die Plattform-Unabhänigkeit von java wieder auf.

Einen weiteren Versuch hab ich ohne der beiden JAR gestartet
mit -Djava.library.path=native/
leider kein erfolg

Irgend etwas mach ich falsch.

hat jemand eine Idee?
 

snoopysalive

Mitglied
Also, die SWT-Archive, die ich kenne, haben eigentlich nie so lange Namen, sondern heißten immer "swt.jar" – ob für Windows, Linux oder Mac.

Vielleicht funktioniert folgendes:
Erstelle aus deinem Projekt ein JAR-File und binde SWT NICHT in das JAR-File ein. Schreibe aber in die Manifest-Datei in einer separaten Zeile "Class-Path: lib/swt.jar", denn du wirst die swt.jar in eben dieses Verzeichnis legen. Dein Programmpaket sollte also so aussehen:
Code:
Paket-Ordner
|_ PaketName.jar
|_ lib/
  |_ swt.jar
Möchtest du nun dein Programm für die verschiedenen Betriebssysteme zur Verfügung stellen, muss du lediglich die swt.jar-Datei pro OS auswechseln. Dein Code bliebe damit plattformunabhängig, weil die SWT-Bibliothek extern eingebunden wird und sich somit für jedes OS austauschen lässt.

Ich hab das allerdings noch nicht selbst probiert. Daher nur als Gedankenanstoß.

Gruß,
Matthias
 

pcAlko

Grünschnabel
Ah ja!
Das ist ein guter Gedanke!
Müßte eigentlich funktionieren, der jar-file name müßte ja eigentlich egal sein.

Welche jar-files kennst Du denn?
Ich benutze die jar files aus dem plug-in ordner von eclipse
die sind eigentlich alle so lang.

Weißt Du wo man die vom Internet downloaden kann?
Ich habe nämlich auch das Problem dass ich auf Linux programmiere
und natürlich in meinem Eclipse nur das jar file für Linux vorhanden ist.
Die windows-version habe ich nur deswegen weil ich ein ganzes windows-eclipse
herunter geladen habe.
Das möchte ich aber nicht jedesmal müssen
wenn ich die Verion upgraden will.

Und dann noch zu den Native Librarys .so und .dll
Ich dachte mir dass wenn ich mit -Djava.library.path arbeite
dass ich damit auch eine bessere performance damit erziele
Ich habe im Internet gelesen dass es eigentlich ja so funktioniert
java -Djava.library.path=native/ -jar app.jar
. t leider nicht.
Sollte aber so funktionieren
die librarys habe ich nicht im app.jar sondern extern im unterverzeichniss native
und auch nicht die SWT Jars
sind im Unterverzeichniss lib
und alle im MANIFEST.MF unter Class-Path zu finden

;-)pcAlko
 
Zuletzt bearbeitet:

pcAlko

Grünschnabel
he super!
DANKE

den Link hab ich gesucht!
obwohl ich die Seite schon kannte,
ist mir der download für die swt.jar nie aufgefallen.


DANKE
;-)pcAlko
 

Neue Beiträge