7

我正在使用 Tibco RV 的 Linux 服务器上运行 Java 应用程序,但出现以下错误:

TibrvException[error=901,message=Library not found: tibrvj]

是什么导致了这个问题?

我已经添加了包含但仍然相同的结果的 lib*.so路径LD_LIBRARY_PATH

更新:

目前,我已<MyApp>/libs/tibrvj.jar添加到classpath. tibrvj.jar 已从 Windows 环境复制到我正在运行我的应用程序的 Linux 机器上。我从类路径中删除了它并添加了另一个引用<TibcoDirectory>/libs/tibrvj.jar并修复了问题。它们与前一个文件的大小不同,从 Windows 复制的文件和当前在 Linux 框中的文件可能存在差异。有人可以解释为什么会这样吗?

4

5 回答 5

9

我遇到了同样的问题,我通过以下方式修复了它:

  1. 文件 tibrvj.jar 存在于我的应用程序的类路径中
  2. 文件 tibrvj.dll 通过 java 库路径存在。该文件通常位于 Tibco Rendezvous 主目录的 bin 目录下(例如 C:/tibco/tibrv/8.2/bin)
  3. 安装的java版本与安装的tibco版本兼容。

我的环境是:

  1. 视窗 7, 64 位
  2. Tibco Rendezvous 8.2,64 位
  3. JDK 1.6u29,64 位

之前,我为 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 版本的线索。

于 2011-12-22T12:02:18.703 回答
2

您是否使用 System.loadLibrary("tibrvj") 加载了库?您是否已将其添加到 java.library.path 中?

于 2011-03-29T08:40:17.513 回答
1

使用

java -Djava.library.path=/opt/tibco/tibrv/lib -cp {}.jar

LD_LIBRARY_PATH=/opt/tibco/tibrv/lib export LD_LIBRARY_PATH

然后**System.loadLibrary("tibrvj");**

于 2017-08-29T07:20:21.570 回答
0

你在使用包装器吗?

您的 wrapper.conf 中是否设置了 java.library.path?我在 wrapper.conf 中设置了 java.library.path,更正这个值为我解决了这个问题。

于 2014-06-09T14:16:50.160 回答
0

rchavarria 和 DaveHowes 的回答有所帮助,但对我来说,问题是我的 IDE 在运行我的项目时覆盖了 PATH 变量(因此覆盖了 java.library.path)。

删除此覆盖使其工作,因为 IDE tibrv 外部已经在 PATH 上。

于 2013-07-23T10:48:29.440 回答