Eclipse 3.4 - 带有环境变量的外部JAR

时间:2013-10-23 15:56:31

标签: java eclipse osgi classpath equinox

我正在开发一个Lotus Notes插件(Eclipse 3.4),需要依赖外部SDK / Connector来处理一些Java依赖项和配置文件。

似乎为了正常运行,Connector安装文件夹中的文件必须位于类路径中。由于我不知道它的安装位置,因此我必须依赖于安装期间设置的环境变量(“IBMCMROOT”),该变量包含该文件夹。

有没有办法将Windows环境变量用于eclipse插件的类路径定义?我尝试在清单中使用变量:

Bundle-ClassPath: external:$IBMCMROOT$/lib/cmb81.jar,
 $IBMCMROOT$/lib/cmbsdk81.jar,
 $IBMCMROOT$/lib/db2jcc.jar,
 .,
 $IBMCMROOT$/lib/guava-15.0.jar,
 $IBMCMROOT$/lib/log4j-1.2.17.jar

这导致ClassNotFoundExceptions ...

2 个答案:

答案 0 :(得分:0)

不,Bundle-ClassPath不是这样使用的。它只能引用包本身内的路径。

为了从未知位置的任意外部JAR文件加载类,您需要使用URLClassLoader

答案 1 :(得分:0)

external:是一个Eclipse容器。但我认为你需要在每个外部jar前加external:。此外,IBMCMROOT必须是系统属性(不是环境变量)。例如,使用-DIBMCMROOT=...

启动java

但是,我不会这样做。相反,将这些必要的jar放在类路径上并配置系统包以导出那些随后可以从包中导入的包。