Je vais proposer du bash& crash. On est d'accord, la librairie est mal foutue, elle n'aurait pas à faire çà, mais elle le fait (sic) et aurait du etre basé sur un api de Service présente depuis jdk 1.4. Solution
Tu scanne toi même à la main le contenu de lib/*.jar et tu établit comme convention que ton application sera distribuée avec cette structure. Ensuite tu crée un string regroupant tous ces jar avec séparateur et tu fait un System.setProperty("java.lang.classpath",classpathToutPourriPourLibrairiePourrie) et la librairie sera contente
Simple et rapide, pas besoin de scanner le classpath réel.
Autre solution, ne pas mettre les lib dans ton manifest, mais plutot passer par un .bat ou un .sh qui fait un
java -cp=monCode.jar;lib/lib1.jar;lib/lib2.jar ma.classe.Principale
et la librairie tierce sera aussi contente.
Troisième solution: utilise la première solution, mais au lieu de construire la String, la prendre hardcodée dans un fichier de config ou sur la ligne de commande 
Dans tous les cas, ca vaut mieux de d'essayer d'extirper l'info depuis le classloader car ca nécessitera de la bidouille pas garantie.
Partager