我们有一个在 NetBeans 中开发的应用程序,基于 NetBeans 平台。我们有一个运行时依赖的第 3 方程序,更具体地说,是其他程序 lib 文件夹中的一个 jar。
我们应该如何将其他程序的 jar 包含在我们的类路径中?
其他程序制造商的建议是设置环境变量 CLASSPATH 以包含
C:\Progam Files\Other Program\lib\theJAR.jar
如果不可能,我们应该将 JAR.jar 复制到 JRE-HOME\lib\ext
我们不能将 JAR.jar 复制到其他地方,这可能会导致它停止工作...
现在 NetBeans 不会注意到环境变量 CLASSPATH 上的内容。他们推荐的方法似乎是制作一个包装器,但这会导致复制 jar,除非有某种方法可以制作指向 CLASSPATH 的包装器模块?
目前我们正在将 jar 复制到 JRE-HOME\lib\ext
中。但是当我们安装一些java更新时就会出现不必要的麻烦。
你有办法解决这个问题吗?看起来似乎很简单,但我还没有找到合适的地方看...
编辑:该应用程序是基于 Ant 的。
最佳答案
摘自模块系统 API 的文档 overview of the runtime infrastructure (页面底部“常见问题和解决方案”部分下):
Q: Can my module add a library JAR to the classpath from outside the IDE [read: platform] installation?...
A: Not easily. You have a few options:
- Add an entry to ide.cfg [your app's .config file]. For example:
-cp:a c:\eak\lib\eak.jar This startup file provides the ability to add classpath entries to the IDE's Java invocation.
...
它接着列出了另外两个选项。第二个选项与您提出的解决方案相同。第三种是“对模块进行分区并使用新的类加载器”,我不推荐这种方法,因为我没有这方面的经验(但值得一读)。
假设第一个选项就是您正在寻找的,you will need to add a custom .conf file到您的项目并在 project.properties 文件中指向它,如下所示:app.conf=nbproject/my.conf
。这会将您的自定义 .conf 文件添加到应用程序的安装目录中,而不是通常添加的默认配置文件。当然,您需要将 -cp:a c:\eak\lib\eak.jar
条目添加到此自定义配置文件中才能加载 .jar。
在开发过程中,您需要将以下条目添加到project.properties 文件中:run.args.extra=-cp:a c:\eak\lib\eak.jar
。这会将命令行选项传递给您的调试实例。
关于java - Netbeans:需要在类路径中包含第 3 方目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358953/