簡體   English   中英

無法在其他計算機上運行Jar文件。 錯誤:java.library.path中沒有文件

[英]Unable to run Jar file on other computer. Error: no file in java.library.path

我有一個特定項目的SDK。 我已經在計算機上安裝了此SDK,然后對客戶端提供的示例代碼進行了一些修改。 之后,我從Eclipse中為該代碼創建了可運行的JAR,它可以從CMD以及通過雙擊成功運行。

現在,我希望在其他PC上執行我的Jar文件,但是我收到一個錯誤:java.library.path中沒有MorphoSmartSDKJavaWrapper。

我也遇到了同樣的錯誤,但是我為此從系統設置了環境變量,但是我想刪除對環境變量的依賴,因此我在Main Class中編寫了代碼以在內存中設置環境變量,而現在沒有設置任何環境變量在系統中手動運行,我能夠在PC上成功打開Jar文件。

現在,我想在其他PC上運行此Jar文件,但它給我一個錯誤:“ 錯誤:java.library.path中沒有MorphoSmartSDKJavaWrapper。

我不明白我錯過了什么。 為什么我無法通過在其他PC上雙擊來打開此JAR文件。 謝謝。

它是您的應用程序/ jar依賴於其他包裝器庫,可能是dll(安裝SDK時可能安裝在程序文件下)。 在其他計算機上運行該應用程序時,需要提供該庫。 一種快捷方式是通過命令行args提供它

java -cp xxxx.jar -Djava.library.path=path/to/lib

https://examples.javacodegeeks.com/java-basics/java-library-path-what-is-it-and-how-to-to/

正如@kuhajeyan指出的那樣,您的jar正在java.library.path系統屬性中設置的路徑中尋找本機庫(可能是一些dll)。 安裝SDK之后,本機庫在您的系統中可用,並且java.library.path指向該庫所在的位置。 對於您遇到錯誤的其他系統,本機庫不可用或java.library.path未指向可用的位置。

由於您的要求是雙擊運行jar,因此建議您使用

public static void load(String filename)

System claas的api在應用程序啟動時加載庫。

例如,如果您的庫文件名為foo.dll,並且位於C:\\ Program Files \\ Java \\ jdk1.8.0_73 \\ bin,則您的方法將如下所示:

System.load("C:\\Program Files\\Java\\jdk1.8.0_73\\bin\\foo.dll")

暫無
暫無

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

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