我正在开发一个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 ...
答案 0 :(得分:0)
不,Bundle-ClassPath不是这样使用的。它只能引用包本身内的路径。
为了从未知位置的任意外部JAR文件加载类,您需要使用URLClassLoader
。
答案 1 :(得分:0)
external:
是一个Eclipse容器。但我认为你需要在每个外部jar前加external:
。此外,IBMCMROOT
必须是系统属性(不是环境变量)。例如,使用-DIBMCMROOT=...
但是,我不会这样做。相反,将这些必要的jar放在类路径上并配置系统包以导出那些随后可以从包中导入的包。