Library not found: tibrvj
Asked Answered
L

5

7

I'm running a Java application on a Linux server that uses Tibco RV and I get the following error:

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

What is causing this problem?

I have already added lib path containing *.so into LD_LIBRARY_PATH but still the same result.

UPDATE:

Currently, I have <MyApp>/libs/tibrvj.jar added into classpath. The tibrvj.jar was copied from Windows environment to the Linux box where I'm running my application. I removed this from the classpath and added another reference <TibcoDirectory>/libs/tibrvj.jar and it FIXED the problem. They have different sizes with the previous file and there's probably a difference between the one copied from Windows and the one currently in the Linux box. Can someone explain why is this so?

Libreville answered 29/3, 2011 at 8:4 Comment(0)
S
9

I had the same problem, and I fixed it doing the following:

  1. File tibrvj.jar is present in the classpath of my application
  2. File tibrvj.dll is present via java library path. This file is usually located at bin directory in Tibco Rendezvous home directory (e.g. C:/tibco/tibrv/8.2/bin)
  3. The installed java version is compatible with the installed tibco version.

My environment is:

  1. Windows 7, 64bits
  2. Tibco Rendezvous 8.2, 64bits
  3. JDK 1.6u29, 64bits

Before, I had installed a JDK 1.6u17, for a i586 processor and when I tried to load the library using:

System.loadLibrary("tibrvj");

I got this error:

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

It gave me the clue to instal the correct java version.

Siegfried answered 22/12, 2011 at 12:2 Comment(1)
The keys are 1 - Right Java version, 2 - tibrvj.jar in classpath 3- tibrvj.dll in environment variable PATH. You can do it adding to PATH [TIBCO_PATH]\binWireman
C
2

Have you loaded the library using System.loadLibrary("tibrvj")? Have you added it to java.library.path?

Catafalque answered 29/3, 2011 at 8:40 Comment(4)
I loaded it using Tibrv.open(Tibrv.IMPL_NATIVE).Libreville
Not sure what you mean there - I believe that in order to use a native library you have to load in once into the JVM so that the classloader knows about it. Typically I'd do this in a static initializer. Is the Tibrv.open() statement you mention above in your java?Catafalque
And what is Tibrv? One of your own objects or something supplied by Tivco?Catafalque
Tibrv is a class provided by Tibco, as in com.tibco.tibrv.Tibrv.Libreville
S
1

Use :

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

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

Then **System.loadLibrary("tibrvj");**

Sleeper answered 29/8, 2017 at 7:20 Comment(0)
E
0

The answers by rchavarria and DaveHowes helped, but for me the problem was that my IDE was overriding the PATH variable (and hence java.library.path) when running my project.

Removing this override made it work, as outside the IDE tibrv was already on the PATH.

Edi answered 23/7, 2013 at 10:48 Comment(0)
J
0

Are you using Wrappers?

Do you have java.library.path set in your wrapper.conf? I had java.library.path set in wrapper.conf, correct this value fixed the issue for me.

Jerusalem answered 9/6, 2014 at 14:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.