我在使用Tibco RV的Linux服务器上运行Java应用程序,我收到以下错误:
TibrvException[error=901,message=Library not found: tibrvj]
是什么导致了这个问题?
我已经在*.so
中添加了包含LD_LIBRARY_PATH
的lib路径,但结果仍然相同。
更新:
目前,我已将<MyApp>/libs/tibrvj.jar
添加到classpath
。 tibrvj.jar从Windows环境复制到我正在运行我的应用程序的Linux机器。我从类路径中删除了它并添加了另一个引用<TibcoDirectory>/libs/tibrvj.jar
并且它修复了问题。它们与前一个文件的大小不同,从Windows复制的那个和当前在Linux框中的一个可能有区别。有人可以解释为什么会这样吗?
答案 0 :(得分:9)
我遇到了同样的问题,我修复了以下问题:
我的环境是:
之前,我为i586处理器安装了JDK 1.6u17,当我尝试使用以下方式加载库时:
System.loadLibrary("tibrvj");
我收到了这个错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\TIBCO\tibrv\8.2\bin\tibrvj.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
它给了我安装正确java版本的线索。
答案 1 :(得分:2)
您是否使用System.loadLibrary(“tibrvj”)加载了库?你有没有把它添加到java.library.path?
答案 2 :(得分:0)
rchavarria和DaveHowes的答案有所帮助,但对我来说问题是我的IDE在运行我的项目时覆盖了PATH变量(以及java.library.path)。
删除此覆盖使其工作,因为IDE tibrv外部已经在PATH上。
答案 3 :(得分:0)
您使用的是Wrappers吗?
你的wrapper.conf中是否设置了java.library.path? 我在wrapper.conf中设置了java.library.path,更正此值为我解决了问题。
答案 4 :(得分:0)
使用:
java -Djava.library.path=/opt/tibco/tibrv/lib -cp {}.jar
LD_LIBRARY_PATH=/opt/tibco/tibrv/lib export LD_LIBRARY_PATH
然后**System.loadLibrary("tibrvj");**