【问题标题】:Importing libraries/JARs in Eclipse在 Eclipse 中导入库/JAR
【发布时间】:2021-10-17 16:21:33
【问题描述】:

我知道这是一个相对常见的问题,但我已经遵循了很多这些问题的答案,但没有一个有效。

我正在使用 Eclipse(现在在 Mac 上,尽管我在 Windows 上遇到了问题),我想学习 LWJGL,它是一个 Java 库。我下载了所有的罐子,并将它们复制到一个 lib 文件夹中:

然后,作为示例,我将其中 3 个添加到项目的构建路径中,以便它们出现在引用的库部分中

现在,虽然我可以从字面上看到 org.lwjgl 例如在我引用的库中,但我总是无法在我的代码中使用它...

有人知道为什么会这样吗?

【问题讨论】:

    标签: java eclipse lwjgl


    【解决方案1】:

    您似乎在使用 模块化 Java 应用程序,即使用 Java 9+ 模块系统及其 模块路径 而不是 Java 之前的-模块系统类路径

    因此,您还必须在项目的 module-info.java 中声明一个依赖项,使其看起来像:

    module whatever.your.app.module.is {
      requires org.lwjgl;
      requires org.lwjgl.natives;
      requires org.lwjgl.glfw;
      requires org.lwjgl.glfw.natives;
      requires org.lwjgl.opengl;
      requires org.lwjgl.opengl.natives;
    }
    

    重要的部分是您必须添加的module-info.java 文件中的requires 声明。

    仅将 LWJGL jar 文件添加到 Eclipse 的 模块路径(与其 类路径相反)不会使这些类可用于您的模块化 Java 应用程序。

    模块化Java 应用程序的替代方案是使用Java 模块系统的应用程序。在这种情况下,您可以简单地删除您的 module-info.java 文件并将 LWJGL 的 jar 文件(包括名称中带有“natives”的那些)添加到 Eclipse 的构建路径类路径(而不是“模块路径” )。

    【讨论】:

    • 这太完美了,非常感谢!虽然在此之后我发现 Apple M1 显然不支持 GLFW .. yikes
    • @NoahRGB 支持。不过,您必须使用 LWJGL 3.3.0 快照(抢先体验)。
    • 这很有意义。但是,当我这样做时,我会收到一个新错误: [LWJGL] Platform/architecture mismatch detected for module: org.lwjgl JVM platform: macOS x86_64 16.0.2 OpenJDK 64-Bit Server VM v16.0.2+7-67 by Oracle公司平台在类路径上可用:macos/arm64
    • @NoahRGB 那么你没有 Mac M1 芯片。你有一个 x86 芯片,所以只需使用 macOS x64 本机。在这种情况下,您也可以只使用 LWJGL 3.2.3 版本。
    猜你喜欢
    • 2015-06-26
    • 2012-07-01
    • 2015-05-17
    • 2012-01-23
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多