1

我正在为 Lotus Notes(即 Eclipse 3.4)开发一个插件,并且需要依赖外部 SDK/连接器来获取一些 Java 依赖项以及配置文件。

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

eclipse插件的classpath定义有没有办法使用windows环境变量?我尝试在清单中使用变量:

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...

4

2 回答 2

0

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

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

于 2013-10-23T20:52:45.053 回答
0

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

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

于 2013-10-23T18:04:22.397 回答