运行 BAT 文件中的 JAR 找不到本机路径

Running JAR from BAT file cannot find natives path

我正在 运行从 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 文件的编译文件时,它似乎在需要时找不到本机库,但最终出现错误。

我也试过像这样添加原生库的路径 programaticaly

//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 文件运行。

这可能与我在 开头提到的问题相同,即其中之一:

  • 您的项目中有不必要的 jar 文件(它们可能会导致与您类似的问题)
  • 混合不同版本的 LWJGL jar 文件(可能会导致与您类似的问题)
  • 混合不同版本的 LWJGL 本机 .dll 文件(可能会导致与您类似的问题)
  • 使用不需要的本机 .dll 文件(有时不需要的可能会导致像您这样的错误)