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:
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.:
oder für windows:
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:
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
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