【问题标题】:How to set a JVM launch argument in Eclipse?如何在 Eclipse 中设置 JVM 启动参数?
【发布时间】:2015-09-15 05:13:15
【问题描述】:

我正在开发一个需要 LWJGL 的项目,我正在尝试启动并运行该项目,但在设置 JVM Launch 参数方面遇到了障碍。

LWJGL 的文档如下:

将 -Djava.library.path 系统属性(作为 JVM 启动参数)设置为包含本机文件的文件夹

我得到的错误是:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
  at java.lang.Runtime.loadLibrary0(Runtime.java:870)
  at java.lang.System.loadLibrary(System.java:1119)
  at org.lwjgl.LWJGLUtil.loadLibrarySystem(LWJGLUtil.java:337)
  at org.lwjgl.Sys$1.run(Sys.java:36)
  at java.security.AccessController.doPrivileged(Native Method)
  at org.lwjgl.Sys.<clinit>(Sys.java:33)
  at HelloWorld.run(HelloWorld.java:24)
  at HelloWorld.main(HelloWorld.java:114)

我已经将 LWJGL jar 添加到属性 -> Java 构建路径 -> 库中。

我已经完成了一些查询来弄清楚如何设置 JVM 启动参数,但我遗漏了一些明显的东西。我是使用 Java 项目构建配置的新手。有任何想法吗?谢谢。

更新

在得到一些有用的答案后,我在运行配置中添加了一个系统变量,但仍然遇到同样的错误。这是我的运行配置的屏幕截图。

另外,我的 lwjgl jar 位于我的项目文件夹中可能是重要的信息。

【问题讨论】:

标签: java eclipse jvm lwjgl


【解决方案1】:

鼠标右键 -> Run Configurations... ->Arguments.then 如下图所示。

希望有所帮助。

【讨论】:

  • 确实如此 (+1),虽然我仍然收到错误,但我已经更新了我的帖子。
  • 经过进一步搜索,我没有将本机文件添加到项目中,我只添加了 JAR。添加罐子后,这个解决方案效果很好。谢谢!
【解决方案2】:

您可以直接在代码中设置系统属性,以便它们在 eclipse 之外工作。

public class Main {
    static {
        final String PATH_TO_NATIVES = /*...*/;
        System.setProperty("java.library.path", PATH_TO_NATIVES);
    }
}

您应该在任何其他操作之前执行此操作,因此请将其放在主类中的静态块中(如上面的代码中)或主方法的开头。

顺便说一句:你也可以设置org.lwjgl.librarypath,这样更具体(虽然这两个属性都可以)。

编辑: 从 3.0.0b build 37 开始,可以在运行时使用新的 Configuration 类设置这些属性。

public class Main {
    final String PATH_TO_NATIVES = /*...*/;
    Configuration.LIBRARY_PATH.set(PATH_TO_NATIVES);
}

【讨论】:

  • +1。这两个答案都是正确的,但是这个答案允许您为每个操作系统选择不同的原生系统,从而不仅可以兼容 Windows。它也可以在 Eclipse 之外工作。
  • 我正在尝试实现此方法并有几个问题。首先,我将您提供的代码设置在代码顶部的静态块中,但仍然出现错误。我已经尝试了文件夹“TestProject”和jar的实际路径。我假设我试图提供路径的本机文件是 lwjgl jar 吗?任何想法我做错了什么?
  • @Unome 您必须设置文件夹的路径,该文件夹包含带有.dll.so.dylib 等扩展名的文件。在您下载的 zip 中,应该有一个名为 native 的文件夹,其中包含这些文件。请注意,在 LWJGL 2 中有多个子文件夹,因此您必须为您的操作系统选择正确的一个(这有助于以编程方式设置系统属性)。
猜你喜欢
  • 2014-05-22
  • 2012-12-01
  • 1970-01-01
  • 2018-11-29
  • 2013-01-16
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多