我有一个现有的java应用程序,它使用CORBA。因此,它使用java.endorsed.dirs命令行参数指向包含我们使用的CORBA库的目录。应用程序目前在以下命令行中运行得很好:
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.endorsed.dirs=./lib -jar "myapp.jar"现在,我需要向我的应用程序添加WorldWind支持。java.library.path jar文件调用本机库,并且似乎引导我使用WorldWind命令行参数指向包含本机库的目录。当我使用以下命令行时(添加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”是WorldWind使用的库之一。上面的例外是说很难找到WorldWind库。
如果我从命令行删除java.endorsed.dirs目录
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.library.path="./lib" -jar "myapp.jar"..。然后我的应用程序运行良好(除了它现在使用的是默认的CORBA实现,而不是我们的产品附带的实现)。
我在这个话题上唯一能找到的链接是这里,但是这个问题似乎没有得到回答,所以我想在这里问。
这两个命令行参数能共存吗?如果没有,这附近有工作吗?
注意:--我是在Red上运行这个的。根据我收到的一条评论,在运行我的应用程序之前,我确实尝试过设置LD_LIBRARY_PATH。这没什么区别。
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:./lib注意:不可能基于最终用户设置将我们的/endorsed文件放在标准的/endorsed目录中。
注意:--我不认为这个问题是特定于CORBA或WorldWind的,但是我想给出我使用上述命令行参数的原因。
发布于 2012-09-11 02:45:47
为了我的特殊情况,我有个工作要做。两个命令行参数(java.endorsed.dirs和java.library.path)都指向同一个目录。当我将它们更改为指向不同的目录时,事情就开始起作用了。最后,我将WorldWind库移动到lib/worldwind,这样我的命令行如下所示:
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.endorsed.dirs=./lib -Djava.library.path="./lib/worldwind" -jar "myapp.jar"我希望这能帮助别人解决这个问题。虽然我仍然不清楚为什么会出现“冲突”。
https://stackoverflow.com/questions/12357635
复制相似问题