我知道捕获错误不是一种好的做法,但在这种情况下,这样做很重要。我试图运行一个jar,其中包含游戏的一部分,但它给了我一个不满意的链接错误,但有趣的是:我使用了以下代码:
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部分的错误。到底怎么回事?提前感谢朋友们!
发布于 2013-07-01 08:43:17
在类似这样的代码中:
new File("Dist/lib/natives").getAbsolutePath()您提供了一个相对于JRE“用户”(或工作)目录的路径“Dist/lib/native”。相对于系统属性"user.dir“的值。此属性的值是在JVM启动时设置的,并且可以根据JVM的启动方式而变化。您应该打印或记录'user.dir‘的值,并观察问题中提到的每个启动案例的差异,以了解发生了什么。
System.ou.println(System.getProperty("user.dir"));https://stackoverflow.com/questions/17395883
复制相似问题