我正在 Windows 7 x64 機器上從 BAT 檔案運行我的 JAR。最近我將本機 .dll 檔案添加到專案中,所以現在我需要添加 BAT 的路徑。我的專案被匯出到“C:/dist”和檔案夾,其中放置了名為“natives”的本地庫,即“C:/dist/natives”。
問題是由于某種原因路徑被忽略或找不到,或者 BAT 中似乎有其他問題。這是我的 BAT 代碼:
@ECHO OFF
java -XX: UseG1GC -Xmx1G -server -Djava.library.path="C:/dist/natives" -jar data.jar
@if %errorlevel% neq 0 pause
當我從 NetBeansIDE 運行我的專案時,一切正常。只有當我嘗試從 BAT 檔案運行編譯檔案時,它才似乎在需要它們時找不到本機庫,最終出現錯誤。
我還嘗試像這樣以編程方式添加到本機庫的路徑:
//PROGRAMATICALLY SET THE PATH TO NATIVE LIBRARIES
System.setProperty("java.library.path", "natives");
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);
它可以在 NetBeansIDE 中正常作業,但在 jar 編譯并通過 BAT 檔案運行后就不行了。
uj5u.com熱心網友回復:
這可能與我在我的這篇文章開頭提到的問題相同,即其中之一:
- 專案中不必要的 jar 檔案(它們可能會導致與您類似的問題)
- 混合不同版本的 LWJGL jar 檔案(可能會導致與您類似的問題)
- 混合不同版本的 LWJGL 本機 .dll 檔案(可能會導致與您類似的問題)
- 使用不需要的本機 .dll 檔案(有時不必要的可能會導致像您這樣的錯誤)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470186.html
