我们有一个基于NetBeans平台的NetBeans开发的应用程序。我们有一个运行时依赖的第三方程序,更具体地说是其他progams lib文件夹中的jar。
我们应该如何在类路径中包含其他progam的jar?
其他程序制造商的建议是将环境变量CLASSPATH设置为包括
C:\Progam Files\Other Program\lib\theJAR.jar
如果不可能,我们应该将JAR.jar复制到 JRE-HOME\lib\ext
JRE-HOME\lib\ext
我们一定不能将JAR.jar复制到其他任何地方,否则可能会导致其停止工作…
现在,NetBeans无需注意环境变量CLASSPATH中的内容。他们推荐的方法似乎是做一个包装器,但这将导致复制jar,除非有某种方法可以使包装器模块指向CLASSPATH?
目前,我们正在将罐子复制到JRE-HOME\lib\ext。但是,当我们安装一些Java更新时,就没有不必要的麻烦了。
您对此问题有解决方案吗?看起来似乎很简单,但是我还没有找到合适的位置…
编辑:该应用程序是基于蚂蚁的。
从模块系统API的运行时基础结构概述的文档(页面底部“常见问题和解决方案”下):
问 :我的模块可以从IDE [read:platform]安装之外将库JAR添加到类路径吗?… 答 :不容易。您有几种选择: 在ide.cfg [您应用的.config文件]中添加一个条目。例如: -cp:ac:\ eak \ lib \ eak.jar 此启动文件提供了将类路径条目添加到IDE的Java调用的功能。 …
问 :我的模块可以从IDE [read:platform]安装之外将库JAR添加到类路径吗?…
答 :不容易。您有几种选择:
-cp:ac:\ eak \ lib \ eak.jar 此启动文件提供了将类路径条目添加到IDE的Java调用的功能。 …
继续列出了另外两个选项。第二种选择是您想到的相同解决方案。第三是“对模块进行分区并使用新的类加载器”,由于我没有这样做的经验,因此我不建议采用任何一种方法(但是值得一读)。
假设您正在寻找第一个选项,则需要向项目中添加一个自定义.conf文件,并在project.properties文件中将其指向,如下所示:app.conf=nbproject/my.conf。这会将您的自定义.conf文件添加到应用程序的安装目录,而不是通常添加的默认配置文件。当然,您需要将-cp:a c:\eak\lib\eak.jar条目添加到此自定义配置文件中以加载.jar。
app.conf=nbproject/my.conf
-cp:a c:\eak\lib\eak.jar
在开发过程中,您需要将以下条目添加到project.properties文件中:run.args.extra=-cp:a c:\eak\lib\eak.jar。这会将命令行选项传递给您的调试实例。
run.args.extra=-cp:a c:\eak\lib\eak.jar