2011-08-12 4 views
0

J'ai développé une application en eclipse qui nécessite java3d. J'ai les jars pour java3d, mais je ne sais pas comment les mettre dans mon jar final de sorte que mon application puisse référencer les classes requises. Je suis sur un mac et juste faire les pots avec la ligne de commande, c'est mon script:packaging java jar library avec mon application

cd /Users/landonsilla/Sites/3dviewer/bin 
jar -cvf CyarkCloudViewerPro.jar pointCloudTest/*.class pointCloudTest/icons/*.png 

Il est assez simple, il faut juste quelques fichiers de classe et quelques images et les met dans le pot. Comment puis-je mettre les pots java3d là-bas?

L'objectif final est de livrer ceci sur mon site Web via jnlp. Mon application fonctionne, et le mécanisme de livraison jnlp que j'ai implémenté fonctionne correctement. Cependant, mon application se bloque en essayant de faire des trucs java3d.

Cela ressemble à une demande simple et commune, je ne peux pas trouver la réponse.

+0

Voir http://stackoverflow.com/questions/81260/java-easiest-way-to-merge-a-release-into-one-jar-file ou http://stackoverflow.com/questions/183292/ classpath-including-jar-within-a-jar –

Répondre

1

Vous venez d'ajouter les fichiers jar dans le fichier jar principal, puis d'annoncer les bibliothèques sur votre fichier MANIFEST.MF. Exemple de MANIFEST.MF:

Manifest-Version: 1.0 
Main-Class: fi.ropecon.contv.client.ConTVClient 
Created-By: "Jari Juslin <[email protected]>" 
Class-Path: lib/j2ee.jar lib/jbossall-client.jar lib/log4j.jar lib/jnp-client.jar 

« Main-Class » est la classe qui est appelée pour démarrer le programme lorsque vous démarrez le programme avec la commande java jar. Class-path est, bien, un classpath Java normal, mais relatif à la racine de l'archive jar principale.

+0

Ok, pouvez-vous s'il vous plaît expliquer exactement comment "ajouter les fichiers jar dans le pot principal"? Je sais qu'un jar est juste un fichier zip, alors est-ce que je décompresse, crée un dossier appelé lib, dépose le pot là-dedans, puis le relance? – Landon

+0

Oui, cela fonctionne. Habituellement, les gens utilisent des outils de construction comme "ant" pour le faire. Ils vous permettent de lister quels répertoires et fichiers sont inclus et où. – Zds

+0

Je pense que vous pouvez aussi simplement lister les jars inclus sur la ligne de commande de votre commande "jar", après les classes. L'outil jar agit vraiment comme "tar" dans * nix, c'est juste un outil de compression sophistiqué. – Zds