尝试在服务器上保存的数据库中保存/编译 Java 脚本库时,我遇到了问题视图中出现以下错误的问题。我正在使用 DDE 8.5.3(注意,我已经更改了应用程序和库名称):
项目 'app_name.nsf.java-lib-name.javalib' 缺少必需的库:'C:\lotus\notes8\jvm\lib\axis\axis.jar'
值得注意的是,我使用的是基于 Eclipse 的 Java 编辑器,如果我使用传统的编辑器,则不会出现此问题。
我的脚本库关联了许多 JAR 文件,但是它们都没有通过似乎导致问题的路径包含在内。此外,它不可能是一些隐藏得很深的依赖关系,因为所有包含的 JAR 都是自定义构建的,而且它们都不是用户或需要 Axis。
我还做了一个测试,创建了一个新的库,没有拉入任何外部 JAR,并且发生了同样的错误。
事实证明,问题是由在我的本地 notes.ini 中使用“JavaUserClassesExt”引起的。我最近一直在使用依赖于 Axis 的 LN 客户端应用程序,安装过程的一部分包括将相关的 Axis 文件放入 jvm/lib/ext 中的自定义目录中,然后使用“JavaUserClassesExt”更新 ini 以包含这些文件启动JVM。
我猜这个问题现在才出现,因为我最近不得不将我的 LN 安装位置从上面指示的路径 (lotus\notes8) 更改为稍微不同的路径 (lotus\notes853)。我从原始安装位置复制了我的ini,这就是它仍然引用旧路径的原因。一旦我删除了对错误路径的引用,错误就清除了。
所以我可以理解发生了什么,JVM 试图在类路径上加载所有必需的文件,但由于无法再找到通过“JavaUserClassesExt”请求的文件而遇到问题。
我不明白为什么当我尝试在与 Axis 框架无关的完全不同的数据库中编辑脚本库时会引发此错误。如果尝试基于我的本地类路径导入与 Axis 相关的任何内容,我预计会出现编译错误,但是当库与 Axis 无关时抛出此错误对我来说似乎令人困惑和不正确。
正如我所提到的,这只发生在使用基于 Eclipse 的 Java 编辑器时,所以我认为这是该版本的编辑器的错误。
有没有人遇到过类似的事情?这是否会被归类为预期行为,或者任何人都可以确认这是否是一个错误?
我意识到这是一个非常边缘的案例问题,但会对任何见解感兴趣。
干杯,李