LWJGL:无法加载库

一直试图在linux上使用’lwjgl’,当我从终端运行编译代码时遇到问题。 我正在使用lwjgl 3的稳定版本。

我从网站下载了lwjgl.jar并运行命令javac -cp lwjgl.jar: Main.java ,它编译代码很好。 然后我运行: java -cp lwjgl.jar: Main after并抛出此错误;

 [LWJGL] Failed to load a library. Possible solutions: a) Set -Djava.library.path or -Dorg.lwjgl.librarypath to the directory that contains the shared libraries. b) Add the JAR(s) containing the shared libraries to the classpath. [LWJGL] Enable debug mode with -Dorg.lwjgl.util.Debug=true for better diagnostics. Exception in thread "EndlessRunner" java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.so at org.lwjgl.system.Library.loadSystemRelative(Library.java:100) at org.lwjgl.system.Library.loadSystem(Library.java:71) at org.lwjgl.system.Library.(Library.java:43) at org.lwjgl.system.MemoryAccess.(MemoryAccess.java:17) at org.lwjgl.system.Pointer.(Pointer.java:22) at org.lwjgl.glfw.GLFW.(GLFW.java:562) at Main.init(Main.java:31) at Main.run(Main.java:78) at java.lang.Thread.run(Thread.java:745) 

我不确定我是否错过了一些我需要的文件,或者我是否完全以错误的方式解决这个问题。 这是我正在使用的代码,它只是我在网上发现的一些代码,我正在使用它作为测试。

 import static org.lwjgl.glfw.GLFW.*; import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.system.MemoryUtil.*; import java.nio.ByteBuffer; import org.lwjgl.glfw.GLFWVidMode; public class Main implements Runnable{ private Thread thread; public boolean running = true; private long window; private int width = 1200, height = 800; public static void main(String args[]){ Main game = new Main(); game.start(); } public void start(){ running = true; thread = new Thread(this, "EndlessRunner"); thread.start(); } public void init(){ // Initializes our window creator library - GLFW // This basically means, if this glfwInit() doesn't run properlly // print an error to the console if(glfwInit() != true){ // Throw an error. System.err.println("GLFW initialization failed!"); } // Allows our window to be resizable glfwWindowHint(GLFW_RESIZABLE, GL_TRUE); // Creates our window. You'll need to declare private long window at the // top of the class though. // We pass the width and height of the game we want as well as the title for // the window. The last 2 NULL parameters are for more advanced uses and you // shouldn't worry about them right now. window = glfwCreateWindow(width, height, "Endless Runner", NULL, NULL); // This code performs the appropriate checks to ensure that the // window was successfully created. // If not then it prints an error to the console if(window == NULL){ // Throw an Error System.err.println("Could not create our Window!"); } // creates a bytebuffer object 'vidmode' which then queries // to see what the primary monitor is. //ByteBuffer vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor()); // Sets the initial position of our game window. glfwSetWindowPos(window, 100, 100); // Sets the context of GLFW, this is vital for our program to work. glfwMakeContextCurrent(window); // finally shows our created window in all it's glory. glfwShowWindow(window); } public void update(){ // Polls for any window events such as the window closing etc. glfwPollEvents(); } public void render(){ // Swaps out our buffers glfwSwapBuffers(window); } @Override public void run() { // All our initialization code init(); // Our main game loop while(running){ update(); render(); // Checks to see if either the escape button or the // red cross at the top were pressed. // if so sets our boolean to false and closes the // thread. if(glfwWindowShouldClose(window) == true){ running = false; } } } 

}

你们给予的任何帮助都将非常感激。

谢谢。

我只能说使用NetBeans 8来运行LWJGL 3,但我也遇到了同样的错误。 我发现的问题与最初设置LWJGL时需要添加到“类路径”选项卡的“本机”jar文件有关。 这样做的原因是它使LWJGL能够自动找到原生jar。 然后在您的VM设置下,您需要将其设置为:

 -Djava.library.path="Path to where you extracted JAR files" 

如果您的路径名包含任何空格,则仅包括引号