Comment puis-je créer un fichier JAR exécutable avec SWT qui s'exécute sur toutes les plateformes?
SWT est livré avec une base de POT et un POT par la plate-forme (Windows, Linux/32 bits, Linux/64bit, Mac, AIX, ...). Comment puis-je créer un fichier exécutable JAR qui permettra de choisir la bonne plate-forme de POT au moment de l'exécution?
[EDIT] je pensais à l'approvisionnement de tous plate-forme de Pots dans un sous-répertoire et dans main()
serait ensuite modifier le chargeur de classes. Quelqu'un a déjà essayé cela?
source d'informationauteur Aaron Digulla
Vous devez vous connecter pour publier un commentaire.
Regardez cela, il y a un exemple de code:
Créer de la croix-plate-forme java swt application
Pour mon travail actuel, j'nécessaires à l'alimentation d'un exécutable jar qui pourrait charger les pots à l'intérieur de lui-même et exécuter une deuxième main(). Fondamentalement, un amorçage principal() et une application principal().
L'étape 1. dans le manifeste "principal-classe" vous mettez votre classe de bootstrap
L'étape 2. Lors de votre classe de bootstrap fonctionne il unjar son propre pot et tous les pots à l'intérieur d'un répertoire temp. Utiliser quelque chose comme la ligne ci-dessous pour obtenir votre propre pot.
L'étape 3. Votre classe de bootstrap détecte le système d'exploitation via le "système d'exploitation.nom de la propriété" et de charges appropriés pots du répertoire temp avec ce
L'étape 4. Maintenant, vous devriez être en mesure d'exécuter votre application en appelant la principale de l'application().
NOTE: Ce petit hack dépend de votre JVM à l'aide de
URLClassLoader
comme son SystemClassLoader, ce qui est vrai pour la Jvm Sun, pas pour les autres.De cette façon, vous pouvez fournir un seul pot de seulement, et il va décompresser lui-même et de courir avec le bon bocaux.
IIUC, tu avais toujours le problème de la spécification de la plate-forme spécifique de la JNI de la bibliothèque. Vous pourriez être en mesure de tirer parti de Java Web Start pour cela, mais je n'ai pas essayé. Par ailleurs, certains projets de construire des programmes d'installation personnalisés pour les plates-formes supportées. Par exemple, Déploiement SWT Applications sur Mac OS X décrit comment construire une SWT Mac bundle d'application. L'approche est utilisée dans ce exemple. J'ai aussi vu cette JarBundler Tâche Ant utilisé.
Addendum: l'article Déploiement d'une application SWT sur Java Webstart comprend des références utiles.
Peut-être http://one-jar.sourceforge.net/ (plugin Maven à http://code.google.com/p/onejar-maven-plugin/) pourrait aider dans ce sens...
Il sera plus facile à utiliser différents scripts shell pour les différentes plates-formes et de spécifier une plate-forme spécifique jar dans le script.