首页 > 解决方案 > 使用导入的库运行 jar 文件时出现问题?

问题描述

我对 Java 比较陌生,我制作了一个使用 LWJGL 3 的脚本。该程序在 Eclipse IDE 中运行得非常好,但是当我尝试将其导出为可运行的 Jar 文件时(我检查了 package required libraries 字段)然后尝试通过 windows 命令行运行它,我收到如下错误消息:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.NoClassDefFoundError: org/lwjgl/glfw/GLFW
    at renderEngine.TestEngine.main(TestEngine.java:18)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: org.lwjgl.glfw.GLFW
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 6 more

我假设这是由于无法访问我导入的库引起的问题,但是在网上搜索了一段时间后,我找不到一个正确的指导答案来解决这个问题。大多数时候是有人提出问题,然后只是说他们自己解决了问题,或者其他人解释了问题,但实际上并没有帮助解决问题。我希望有人可以帮助我指导解释如何解决此问题,以及是否可以对其进行解释以避免将来出现问题。

如果需要更多信息来帮助解决这个问题,我很乐意提供。

更新:似乎问题出在 GLFW 上,而不是整个图书馆。重新阅读错误时,唯一无法找到或加载的是 GLFW,当我还使用来自同一库(如 OpenGL)的其他导入时。此外,它指定的行是我从 GLFW 调用函数的行,而不是在导入包时,不知道这是因为导入不成功时不会调用错误还是可能存在其他问题在包本身内。我不知道我是否正确只是试图通过提供更多信息来提供帮助。

谢谢,奥利弗 :)

标签: javabuildjarlwjglclassnotfoundexception

解决方案


您可以将项目导出为“可运行 jar”(在项目上用鼠标右键 -> 导出 -> 可运行 jar),您可以选择将所有依赖项打包到生成的 jar 中。

使用突出显示的库处理选项。

在此处输入图像描述


推荐阅读