2012-07-06 2 views
0

Nous avons une application développée dans NetBeans, basée sur la plateforme NetBeans. Il y a un programme 3'de parti auquel nous avons une dépendance au moment de l'exécution, plus spécifiquement un fichier jar dans l'autre dossier progams lib.Netbeans: besoin d'inclure le répertoire 3'rd party dans classpath

Comment devrions-nous inclure le jar de l'autre progam dans notre classpath?

La recommandation de l'autre fabricant de progamme est de définir CLASSPATH variable d'environnement pour inclure

C:\Progam Files\Other Program\lib\theJAR.jar 

Et si ce n'est pas possible, nous devrions copier theJAR.jar à JRE-HOME\lib\ext

Nous ne devons pas copier theJAR. JAR n'importe où ailleurs, cela pourrait le faire cesser de fonctionner ...

Maintenant, NetBeans ne tient pas compte de ce qui est sur la variable d'environnement CLASSPATH. Leur manière recommandée semble être de faire un wrapper, mais cela conduirait à copier le jar, à moins qu'il y ait un moyen de faire un module wrapper qui pointe vers CLASSPATH?

Pour le moment nous copions le pot dans JRE-HOME\lib\ext. Mais alors il y a des tracas inutiles lorsque nous installons une mise à jour Java.

Avez-vous une solution à ce problème? Il semble que quelque chose qui pourrait être simple, mais je n'ai pas trouvé le bon endroit pour regarder encore ...

Modifier: L'application est basée sur les fourmis.

+0

FYI ... Dans NetBeans 8, les projets ont tendance à être basés sur [** Maven **] (https://en.wikipedia.org/wiki/Apache_Maven). Pour obtenir de l'aide sur l'ajout de bibliothèques (dépendances) à de tels projets Maven, consultez les Questions, [Comment configurer le classpath dans Netbeans?] (Http://stackoverflow.com/q/7598623/642706) et [Ajouter des dépendances dans Maven Netbeans] (http://stackoverflow.com/q/6819317/642706). –

Répondre

1

De la documentation du l'API du système de module overview of the runtime infrastructure (en bas de la page, sous la rubrique "Problèmes courants et solutions"):

Q: mon module peut ajouter une bibliothèque JAR au classpath de en dehors de l'installation IDE [lecture: plate-forme]?

A: pas facile. Vous avez quelques options:

  1. Ajoutez une entrée à ide.cfg [fichier .config de votre application].Par exemple:

-cp: a c: \ EAK \ lib \ eak.jar Ce fichier de démarrage permet d'ajouter des entrées classpath à l'appel Java de l'EDI.
...

Il va sur la liste deux autres options. La deuxième option est la même que celle que vous avez trouvée. Le troisième est de "partitionner votre module et utiliser un nouveau classloader" que je ne peux pas recommander de toute façon puisque je n'ai aucune expérience en la matière (mais ça vaut le coup d'être lu).

En supposant que cette première option est ce que vous cherchez, you will need to add a custom .conf file à votre projet et pointez-le dans votre fichier project.properties, comme ceci: app.conf=nbproject/my.conf. Cela ajoutera votre fichier .conf personnalisé au répertoire d'installation de votre application au lieu du fichier de configuration par défaut normalement ajouté. Bien sûr, vous devrez ajouter l'entrée -cp:a c:\eak\lib\eak.jar à ce fichier de configuration personnalisé afin de charger le fichier .jar.

Lors du développement, vous devez ajouter l'entrée suivante au fichier project.properties: run.args.extra=-cp:a c:\eak\lib\eak.jar. Cela passera l'option de ligne de commande à votre instance de débogage.

+0

C'est exactement ce que nous avons fait finalement, fonctionne comme un charme. Si seulement nous pouvions avoir une référence à% SOME_ENV_VARIABLE% dans my.conf, ce serait parfait, mais cela ne semble pas faisable. Mais pour la plupart des usercases, le programme de la 3ème partie sera installé dans le même répertoire, donc il ne sera pas très difficile d'éditer my.conf dans les rares cas où il n'est pas installé. – bjarven

+0

Je suis content que vous ayez résolu ce problème.Juste pour info, vous * pouvez * répondre à votre propre question (et la marquer comme acceptée) si vous avez la solution. De cette façon, d'autres qui ont un problème similaire peuvent apprendre de vos découvertes. –

+0

Ah aurait dû faire cela alors ... Merci pour votre réponse! – bjarven

0

Vous pouvez ajouter ce fichier .jar en suivant les étapes ci-dessous:

  1. Dans le panneau latéral gauche nommé « Projets » Ouvrez votre projet et faites un clic droit sur les « bibliothèques », puis sélectionnez « Ajouter JAR /Dossier...".

  2. Ensuite, sélectionnez votre fichier .jar à partir de l'emplacement où vous l'avez enregistré dans la boîte de dialogue suivante qui s'ouvre, puis appuyez sur "Ouvrir".

  3. Vola Terminé !!! (avec le même processus, vous pouvez ajouter d'autres bibliothèques aussi comme JavaCV, JMF, etc)

  4. Et maintenant vous pouvez utiliser ce fichier .Jar de votre bibliothèque de projet.

Hope It Helps.

+0

Il n'existe aucune option de ce type sur un projet "module NetBeans" ou sur un projet "NetBeans Platform Application". Cela ne peut être fait que sur un projet Java standard. Ou ai-je oublié quelque chose? – bjarven

+0

Général onglet du projet dans lequel il montre vos projets, modules, etc sont montrés, est sur le côté gauche de l'écran. et sinon, appuyez sur "Ctrl + 1" ou allez à la barre de menu et cliquez sur "Fenêtre" et un menu déroulant s'ouvrira et là vous sélectionnez "Projets". Ensuite, dans le menu du projet, sélectionnez/agrandissez votre projet ou votre module, puis votre dossier Bibliothèque. Et puis procédez comme expliqué ci-dessus. – codeDEXTER

+0

Oui, je sais où est l'onglet projet ... Mais sous "Bibliothèques" pour un projet de module netbeans il n'y a que les options "Ajouter une dépendance de module" ou "Ajouter une nouvelle bibliothèque", l'option "Ajouter JAR/Dossier" ne peut être sélectionné si le projet est un projet Java standard, pas un module NetBeans. – bjarven

Questions connexes