salut,
ce que ej veux faire tout simplement c'est que au niveau de mon projet jar, je peux inscrire mes libs en passant par du code ( je force mon jar a embarquer mes libs en passant par le code)
voila :)
merci de votre aide
Version imprimable
salut,
ce que ej veux faire tout simplement c'est que au niveau de mon projet jar, je peux inscrire mes libs en passant par du code ( je force mon jar a embarquer mes libs en passant par le code)
voila :)
merci de votre aide
Je suis pas très sur d'avoir compris : Ce que tu veux faire c'est embarquer toutes tes bibliothèques dans une seul .jar ? Dans ce cas, va voir One-JAR. Sinon, si tu veux charger des bibliothèques dynamiquements (comme les pilotes MySQL ou comme dans l'exemple pour du JNI) tu peux t'inspirer de :
Code:
1
2
3 static { System.loadLibrary("libdeveloppez.jnijna.native"); }
Habituellement les jars s'énumèrent sur le classpath, il est inutile de les rassembler.
Les embarquer au niveau du code, comme tu dis, n'est pas un concept très pratiqué, et ce n'est pas non plus une expression très compréhensible, dans le vocabulaire java. S'il s'agit, comme je le suppose, de mettre tous les jars dans un seul jar, tu peux y parvenir en profitant de ce que un fichier jar est un fichier au format zip ; il te suffit de dézipper tous les jars dans le même répertoire en conservant l'arborescence, puis de tout rejarizer.
Heu... théoriquement oui. Hum.
Et moi je dis que c'est vrai :mouarf3:
Autant pour moi, j'avais mal lu :roll:. Effectivement, si tu "desjarises" toutes des bibliothèques et que tu "rejarises" ça marche. Je pensais en fait mettre des jar dans un jar (pour garder une structure plus propre) et dans ce cas la, le ClassLoader a besoin d'être évoluer...
Et bien la bonne approche est de ne rien faire de tout cela, et de lister des jars dans le classpath comme tout le monde fait.
Si, toutefois, tu tiens absolument à n'avoir qu'un jar, alors l'approche de tous déjarérizer et de tout rejarérizer devrait fonctionner, mais comme personne ne semble l'avoir fait concrètement...
Si si je l'ai fait (enfin j'ai recupéré un projet de 60 Mo comme ca )
En pratique : tu décompresses ( dézippe ) tes jar dans le le même repertoire et tu rejarises derriere.
Ca marche tres bien . ( faut juste faire gaffe au niveau et a ne pas avoir de niveau de repertoires parasites )