Library not found: tibrvj

28,192

Solution 1

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.

Solution 2

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

Solution 3

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");**

Share:
28,192
jasonline
Author by

jasonline

C++ Developer

Updated on July 14, 2022

Comments

  • jasonline
    jasonline almost 2 years

    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?

  • jasonline
    jasonline about 13 years
    I loaded it using Tibrv.open(Tibrv.IMPL_NATIVE).
  • DaveH
    DaveH about 13 years
    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?
  • DaveH
    DaveH about 13 years
    And what is Tibrv? One of your own objects or something supplied by Tivco?
  • jasonline
    jasonline about 13 years
    Tibrv is a class provided by Tibco, as in com.tibco.tibrv.Tibrv.
  • AntuanSoft
    AntuanSoft over 5 years
    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]\bin