我有一个使用 CORBA 的现有 java 应用程序。因此,它使用java.endorsed.dirs命令行参数指向包含我们正在使用的 CORBA 库的目录。该应用程序当前运行良好,使用以下命令行:
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.endorsed.dirs=./lib -jar "myapp.jar"
现在,我需要在我的应用程序中添加 WorldWind 支持。WorldWind jar 文件调用本机库,似乎指示我使用java.library.path命令行参数指向包含本机库的目录。当我使用以下命令行时(添加 java.library.path):
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.endorsed.dirs=./lib -Djava.library.path="./lib" -jar "myapp.jar"
我在运行我的应用程序时收到以下错误:
..Exception in thread "main" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
“gluegen-rt”是 WorldWind 使用的库之一。上面的例外是说很难找到 WorldWind 库
如果我从命令行中删除 java.endorsed.dirs 目录
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.library.path="./lib" -jar "myapp.jar"
...然后我的应用程序运行良好(除了它现在使用默认的 CORBA 实现,而不是我们产品附带的那个)。
我能找到的关于这个主题的唯一链接是这里,但这个问题似乎没有得到回答,所以我想我会在这里问。
这两个命令行参数可以共存吗?如果没有,是否有解决方法?
注意:我在 Red Hat Linux 上运行它。根据我收到的评论,我确实在运行我的应用程序之前尝试设置 LD_LIBRARY_PATH。那没有任何区别。
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:./lib
注意:根据最终用户设置,不可能将我们的 CORBA 文件放在标准 jre /endorsed 目录中。
注意:我不认为这个问题是针对 CORBA 或 WorldWind 的,但我想说明我同时使用上述两个命令行参数的原因。