【发布时间】:2020-04-13 23:05:41
【问题描述】:
我正在尝试完全从控制台编译和运行 LWJGL 项目,而不使用 Maven/Gradle 或任何 IDE(出于某种原因)。我正在运行 Mac OS X v10.15.4。该程序似乎编译得很好,但在运行它时,我得到以下信息:
[LWJGL] Version: 3.2.3 build 13
[LWJGL] OS: Mac OS X v10.15.4
[LWJGL] JRE: 12 x86_64
[LWJGL] JVM: Java HotSpot(TM) 64-Bit Server VM v12+33 by Oracle Corporation
[LWJGL] Loading JNI library: lwjgl
[LWJGL] Module: org.lwjgl
[LWJGL] macos/x64/org/lwjgl/liblwjgl.dylib not found in java.library.path=native
[LWJGL] liblwjgl.dylib not found in java.library.path
[LWJGL] Failed to load a library. Possible solutions:
a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath.
b) Add the JAR that contains the shared library to the classpath.
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.dylib
at org.lwjgl.system.Library.loadSystem(Library.java:162)
at org.lwjgl.system.Library.loadSystem(Library.java:62)
at org.lwjgl.system.Library.<clinit>(Library.java:50)
at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:97)
at org.lwjgl.system.Pointer$Default.<clinit>(Pointer.java:67)
at org.lwjgl.system.Callback.<clinit>(Callback.java:41)
at HelloWorld.init(HelloWorld.java:37)
at HelloWorld.run(HelloWorld.java:22)
at HelloWorld.main(HelloWorld.java:112)
代码与https://www.lwjgl.org/guide处的指导代码相同,我使用以下命令编译运行:
javac -cp .:lib/* HelloWorld.java
java -cp .:lib/* -Djava.library.path=native/macos HelloWorld
我认为我出错的地方(以及错误消息所暗示的)是我丢失了本机文件,或者它们只是设置不正确,但对于我所有的搜索,我似乎都找不到答案.这是我的目录设置:
lib
| lwjgl.jar
| lwjgl-glfw.jar
| lwjgl-opengl.jar
native
| macos
| | lwjgl-glfw-natives-macos.jar
| | lwjgl-natives-macos.jar
| | lwjgl-opengl-natives-macos.jar
HelloWorld.java
HelloWorld.class
我见过Building and running lwjgl program from terminal,但那里似乎没有解决这个问题。我也搜索了 liblwjgl.dylib,但据我了解,LWJGL 的 SharedLibraryLoader 应该可以处理这个问题。
【问题讨论】: