0

我知道捕获错误不是一个好习惯,但在这种情况下,这样做很重要。我正在尝试运行一个包含我游戏的一部分的 jar,但它给了我一个 unsatisfiedlink 错误,但这是有趣的部分:我正在使用此代码:

System.setProperty("org.lwjgl.librarypath", new File("lib/natives").getAbsolutePath());

但是在netbeans中,它给了我这个错误,但是,jar运行了。现在,如果我更改为代码,则为:

System.setProperty("org.lwjgl.librarypath", new File("Dist/lib/natives").getAbsolutePath());

现在,它在 netbeans 中运行,但是 jar 它不工作......我不明白!所以,我正在尝试使用 try/catch 来使用两者中的任何一个,这是完整的代码:

try{
    System.setProperty("org.lwjgl.librarypath", new File("lib/natives").getAbsolutePath());
}
catch (UnsatisfiedLinkError e){
    System.setProperty("org.lwjgl.librarypath", new File("dist/lib/natives").getAbsolutePath());
}

当我在 netbeans 中运行它时,它给了我第一行的错误,而不是 catch 部分的错误。这是怎么回事?先谢谢朋友!

4

1 回答 1

1

在这样的代码中:

 new File("Dist/lib/natives").getAbsolutePath()

您正在提供相对于 JRE“用户”(或工作)目录的路径“Dist/lib/natives”。相对于系统属性“user.dir”的值。此属性的值是在 JVM 启动时设置的,并且可以根据 JVM 的启动方式而有所不同。您应该打印或记录“user.dir”的值,并观察问题中提到的每个启动案例的差异,以了解发生了什么。

System.ou.println(System.getProperty("user.dir"));
于 2013-07-01T00:43:16.590 回答