Search code examples
javadllunsatisfiedlinkerror

java.lang.UnsatisfiedLinkError while running distributed jar


My application is running fine from NetBeans but the distributed jar file is giving problems.

I have read many similar posts without any luck.

Thanks for any ideas how to solve this!

C:\Users\dennis>java -jar "C:\Users\dennis\Documents\JavaApplication1\dist\JavaApplication1.jar"
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Native library not found. Tried to load tibrvnativesd64 and tibrvnativesd
        at com.tibco.tibrv.Tibrv.loadNativeLibrary(Tibrv.java:392)
        at com.tibco.tibrv.Tibrv.<clinit>(Tibrv.java:79)
        at COM.TIBCO.hawk.console.nest.shared.TibrvProxy.open(TibrvProxy.java:33)
        at COM.TIBCO.hawk.console.hawkeye.AgentMonitor.initialize(AgentMonitor.java:342)
        at javaapplication1.TrayIconDemo.createHawkConsole(TrayIconDemo.java:122)
        at javaapplication1.TrayIconDemo.access$100(TrayIconDemo.java:15)
        at javaapplication1.TrayIconDemo$1.run(TrayIconDemo.java:52)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: C:\tibco\tibrv\8.4\bin\tibrvnativesd.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at com.tibco.tibrv.Tibrv.loadNativeLibrary(Tibrv.java:389)
        ... 20 more

Solution

  • I found out the solution to this problem, it's very simple.

    In my case, NetBeans is using java 32bit, but the command prompt is using the java 64 version by default.

    When I explicitly point out java 32 bit in the command prompt, it's working fine.