J'ai créé mon application dans Netbeans 6.8. L'application contient diverses références à des produits tiers (tels que le pilote de base de données Microsoft pour SQL Server et JIDE).Déploiement d'une application Java compilée avec Netbeans - Impossible de trouver une classe tierce
Une fois compilé, il produit un dossier dist que je pensais pouvoir simplement xcopier vers un emplacement et cela fonctionnerait.
Lorsque j'exécute mon application, dès qu'elle rencontre une référence dans un formulaire pour les classes JIDE, l'application signale une erreur et quitte.
Essentiellement, la trace de la pile est:
java.lang.reflect.InvocationTargetException
Caused by: java.lang.ClassNotFoundException: com.jidesoft.gantt.PeriodBackgroundPainter at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source)
Je les fichiers JAR copiés dans le dossier lib dans le dossier où mon fichier jar est.
\ MyApp \ MyJar.jar
\ MyApp \ lib \ tous les pots d'application
Cependant, quand je copier le contenu du dossier lib à C: \ Program Files \ Java \ jre6 \ lib \ ext puis tout fonctionne bien.
Ai-je raté quelque chose? Je cours sur Vista SP2.
J'ai construit un nouveau projet simple avec la même référence aux composants JIDE et l'ai compilé. Lorsque j'exécute le fichier jar, l'application s'exécute et affiche les composants. La seule différence visible que je peux voir entre les projets est la dénomination des conventions sur les paquets utilisés. Notre application principale n'est pas conforme à la dénomination com.company.application standard et contient plusieurs noms de packages. Mon application utilise la convention com.company.application.
Cheers,
Andez
Ne pas copier les choses dans jre6/lib/ext. – Thilo