簡體   English   中英

運行分布式jar時出現java.lang.UnsatisfiedLinkError

[英]java.lang.UnsatisfiedLinkError while running distributed jar

我的應用程序在NetBeans運行良好,但是分布式jar文件出現了問題。

我讀過很多類似的文章,沒有任何運氣。

感謝您提出任何解決方案的想法!

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

tibrvnativesd.dll文件顯然是為32位計算機/操作系統創建的,而嘗試加載該應用程序的應用程序所在的計算機是64位計算機/操作系統。

查找/創建64位兼容的dll或在32位計算機上運行它...

我找到了解決這個問題的方法,這很簡單。

就我而言,NetBeans使用的是Java 32位,但是默認情況下命令提示符使用的是Java 64版本。

當我在命令提示符中明確指出Java 32位時,它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM