Lwjgl 窗口打不开

时间:2021-05-02 18:47:13

标签: java opengl lwjgl glfw

所以我尝试了 lwjgl 但我遇到了一个问题,当我尝试创建一个窗口时出现错误,我就是不知道为什么。

我曾尝试将我的 java 版本从 java 16 降低到 14,但这没有用。

主类:

package ca.immanuel.flappy;


import org.lwjgl.glfw.GLFWVidMode;

import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.GL_TRUE;
import static org.lwjgl.system.MemoryUtil.NULL;


public class Main implements Runnable {

    private int width = 1280;
    private int height = 720;

    private Thread thread;
    private boolean running = false;

    /*
        LWJGL cant use the GLFWwindow struct because structs don't exist in java
        so we instead use an ID system in Java that's why we use a long.
    */
    private long window;

    public void start() {
        running = true;
        thread = new Thread(this, "Game");
        thread.start();
    }

    private void init() {
        if (!glfwInit()){
            System.out.println("GLFW failed to init!");
            System.exit(-1);
        }

        glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
        glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
        glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
        glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);
        if (window == NULL) {
            System.out.println("Could not create window");
            System.exit(-1);
        }

        GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
        glfwSetWindowPos(window, (vidmode.width() - width) /2, (vidmode.height() - height) /2);
        glfwMakeContextCurrent(window);
        glfwShowWindow(window);
    }

    public void run() {
        init();
        while(running) {
            update();
            render();

            if (glfwWindowShouldClose(window) == true){
                running = false;
            }
        }
    }

    private void update() {
        glfwPollEvents();
    }

    private void render() {
        glfwSwapBuffers(window);
    }

    public static void main(String[] args) {
        new Main().start();
    }
}

当我运行主类时出现此错误(在 java jdk 16 上):

<块引用>

任务:Main.main() 失败 无法创建窗口

任务 ':Main.main()' 执行失败。

<块引用>

Process 'command 'C:/Program Files/Java/jdk-16/bin/java.exe'' 以非零退出值 -1 结束

  • 试试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

我尝试使用信息运行它,这是我的输出:

<块引用>

任务:Main.main() 失败 为任务 ':Main.main()' 禁用缓存,因为: 构建缓存被禁用 任务 ':Main.main()' 不是最新的,因为: 尽管执行了操作,但任务尚未声明任何输出。 启动进程'命令'C:/Program Files/Java/jdk-16/bin/java.exe''。工作目录:C:\Users\imman\Documents\FlappyBird 命令:C:/Program Files/Java/jdk-16/bin/java.exe -Dfile.encoding=windows-1252 -Duser.country=CA -Duser.language =en -Duser.variant -cp C:\Users\imman\Documents\FlappyBird\build\classes\java\main;C:\Users\imman\Documents\FlappyBird\build\classes\groovy\main;C:\Users \imman\Documents\FlappyBird\build\resources\main;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-bgfx\3.2.3\433883c4040fa8df47244df9df47244df9delce242 3.2.3.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-bgfx\3.2.3\f589da97dd3cfa96f42c8c812a0a028cf282.bgs-28cf28223-bgs-2.2 .jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.2.3\5e520d5c290c8b012545a8d34fa5db5ab051ea53\lwjg3-C \imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.2.3\b4d8a3477cdc2edcf7a5f1e822926be846223f54\lwjgl-glfw.jars\immans.immans\3.2.3\b4d8a3477 gradle\caches\modules-2\files-2 .1\org.lwjgl\lwjgl-nanovg\3.2.3\718be4a13691d1cd276fa852326e9e837d65204e\lwjgl-nanovg-3.2.3.jar;C:\Users\imman.gradle\jws\imman.gradle\1cd276fa852326e9e837d65204e lwjgl-nanovg\3.2.3\2fbe5c2849bcf182ba3c6c09828f032a64cd47ec\lwjgl-nanovg-3.2.3-natives-windows.jar;C:\Users\imman.gradle\caches\files\orglwljg-c \ 3.2.3 \ 45bfab23e975201bf3cb81287be6034adec64a86 \ LWJGL-nuklear-3.2.3.jar; C:\用户\ imman.gradle \缓存\模块-2 \文件-2.1 \ org.lwjgl \ LWJGL-nuklear \ 3.2.3 \ ccb63f09670e43e58969b567ef42e02275be555a \ lwjgl-nuklear-3.2.3-natives-windows.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.2.3\106742e805803ab9eab0f2b343ab9eab8e2dc343a -3.2.3.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.2.3\ec898e8ce11b5886f4f532a1536283ef2817753l-open.l. windows.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.2.3\bdd534a323d0c8f54969b95e424b6ac8984f7d6e\lw3jg3; C:\Users\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.2.3\e81cfc73ec8708e5e791ed770e4ec3edfc1bbab1\lwjgl.2.3s.jarative;用户\imman.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-par\3.2.3\92d96fe3a3345f4c18ca0e682de41b20ec64b70c\lwjgl-par-3.2:\User.jars\m \modules-2\files-2.1\org.lwjgl\lwjgl-par\3.2.3\b60677b2948f930736aa2bff952fe8380bfe9fbe\lwjgl-par-3.2.3-natives-modules\Userscacheman;C: 2\files-2.1\org.lwjgl\lwjgl-stb\3.2.3\40eccaa4fa86fc815f2e17946a392fb5fdcc286a\lwjgl-stb-3.2.3.jar;C:\Users\caches\orgs2.gradles .lwjgl\lwjgl-stb\3.2.3\817b21ec286f0ba3dcedb56a3bd275e6a9345be9\lwjgl-stb-3.2.3-natives-windows.jar;C:\Users\imman.gradle.2jws\org\files\ LWJGL \ 3.2.3 \ 17a59ba0fe8d474ec9dbe0d5db40d2cfe59c4c08 \ LWJGL-3.2.3.jar; C:\用户\ imman.gradle \缓存\模块-2 \文件-2.1 \ org.lwjgl \ LWJGL \ 3.2.3 \ 27f32cd35349684745951e04388e8e00d681cdcd \ LWJGL-3.2 .3-natives-window s.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-ant\3.0.5\c41c989d5138e9ac48efb1d77e7f271699d10f17\groovy.5.jar :\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-astbuilder\3.0.5\ab712931e02cb8876d9e39567283a43583ddef20\groovy-ast5User.jars\imman. .gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-cli-picocli\3.0.5\fe73f204778dcb438bb810ec78fd3fc1fe8e5709\groovy-cli-picocli-3.0:\imUsers.5. gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-groovysh\3.0.5\80b27062568c6b2efb9dd1a2803c0d22bed182ea\g​​roovy-groovysh-3.0.5\gradles\ccachemans; -2\files-2.1\org.codehaus.groovy\groovy-console\3.0.5\d0e7aec0100a12600e3e1bb33d9140eff52753fc\groovy-console-3.0.5.jar;C:\Users\caches\files-modules\imman.gradle 2.1\org.codehaus.groovy\groovy-datetime\3.0.5\c47535a64ceab4d93227169cb97acab15dfa575a\groovy-datetime-3.0.5.jar;C:\Users\imman.gradle\caches\modules-21 \org.codehaus.groovy\groovy-groovydoc\3.0.5\ce4ce5eedd7d18c14433989d777504150f761472\groovy-groovydoc-3.0.5.jar;C:\Users\imman.gradle\caches\orgscodes-module groovy\groovy-docgenerator\3.0.5\7f7ba0ef7a1b9fd0f5fd5550ee31bdb09d565505\groovy-docgenerator-3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files.codex. \3.0.5\5bae59fafaea99a031be9ea4d1af76e4347d62ea\g​​roovy-jmx-3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\3.0.5.json\groovy-json 3c71dad1aaa890d0012fc72640c1b54263a0de1b \ Groovy的JSON-3.0.5.jar; C:\用户\ imman.gradle \缓存\模块-2 \文件-2.1 \ org.codehaus.groovy \ Groovy的JSR223 \ 3.0.5 \ cd226c46e662e916d669b6be9467d3b8c591e5d \ Groovy的JSR223 -3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-macro\3.0.5\106cd0b1654415b6fe24c23dfa0c4de5be9d6ed0\groovy.5-ma jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-nio\3.0.5\225826095f801716e67b1607bb5ad94de b8e4cc9\groovy-nio-3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-servlet\3.0.5\ad3615cd34cd71e8287934140d59cbovy4servlet -3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-sql\3.0.5\c1b21c52f4289083176e11cdeba8c54b3354945.0y.groov jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-swing\3.0.5\57e204d3ab7dd307cee9cd80d0fe607e0c43a6c5\groovy-swing-3;用户\imman.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-templates\3.0.5\df1b1d2f06b7950c7d356983f6edaa99e6fff892\groovy-templates-3.0.gradles\groovy-templates\3.0.5\df1b1d2f06b \caches\modules-2\files-2.1\org.codehaus.groovy\groovy-test\3.0.5\8a6c5a4a67cbadd2e596296e738dfbb8509e9024\groovy-test-3.0.5.jar;C:\Users\cacheimman. 2\files-2.1\org.codehaus.groovy\groovy-test-junit5\3.0.5\b04895ecd3902448db8da483f087d7ec93894c3e\groovy-test-junit5-3.0.5.jar;C:\Users2cacheman \fi les-2.1\org.codehaus.groovy\groovy-testng\3.0.5\a48a9b291fd571adc8a2161a6781ddc121daa48c\groovy-testng-3.0.5.jar;C:\Users\imman.gradle\21s\org .codehaus.groovy\groovy-xml\3.0.5\e2d01a89405dbb5c3a24d0b7db890cefb8d57b2b\groovy-xml-3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files.code2 groovy\3.0.5\545f7c5e0e30e5cf2d24f4efe661e4bfded2dfa2\groovy-3.0.5.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.apache.ant\ant.7030c5ac6fc5c640c5c5c640c5c640d38c5c640d38c640d38c5c640d38c5c640d38c5c640d38c5c60d38c5c5c5c5c5c5c5c5c6d38c3.0.5.jar \ant-junit-1.10.8.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.apache.ant\ant\1.10.8\ae148abb0532b685c5eeb22fdec9d124e89be5de\ant-1.10. jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\org.apache.ant\ant-launcher\1.10.8\2ca8688d2dad5694237576db782b37279989614d\ant-launcher-1.10.10.8用户\imman.gradle\caches\modules-2\files-2.1\org.apache.ant\ant-antlr\1.10.8\3d728985e3b6a71b80d10db0d574a60b496590a1\ant-antlr-1.10.ant\ant-antlr\1.10.8\3d728985e3b6a71b80d10db0d574a60b496590a1\ant-antlr-1.10.8.gradles; \caches\modu les-2\files-2.1\info.picocli\picocli\4.4.0\c3e3741e126f70c10bfff50953c42827a57901c1\picocli-4.4.0.jar;C:\Users\imman.gradle\caches\files\modules-though .qdox\qdox\1.12.1\f7122f6ab1f64bdf9f5970b0e89bfb355e036897\qdox-1.12.1.jar;C:\Users\imman.gradle\caches\modules-2\files-2.javar.parser\files-2.java-parse3r\com 1\440e5d7118e50d544418a96873d6322c4b1d5527\javaparser-core-3.16.1.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\jline\jline\2.37ae.jline\2.37ae.jline\2.37a40c8c8c8c8c506c8c8c8c8c8c5040c8c8c95c8c8c8c8c8c8c8c550c ;C:\Users\imman.gradle\caches\modules-2\files-2.1\junit\junit\4.13\e49ccba652b735c93bd6e6f59760d8254cf597dd\junit-4.13.jar;C:\Modules\2cacheimman.jar -2.1\org.junit.platform\junit-platform-launcher\1.6.2\d866de2950859ca1c7996351d7b3d97428083cd0\junit-platform-launcher-1.6.2.jar;C:\Users\imman.gradle\caches\files-modules 2.1\org.junit.platform\junit-platform-engine\1.6.2\1752cad2579e20c2b224602fe846fc660fb35805\junit-platform-engine-1.6.2.jar;C:\Use rs\imman.gradle\caches\modules-2\files-2.1\org.junit.platform\junit-platform-commons\1.6.2\7644a14b329e76b5fe487628b50fb5eab6ba7d26\junit-platform-commons-1.6.6. \imman.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-engine\5.6.2\c0833bd6de29dd77f8d071025b97b8b434308cd3\junit-jupiter-engine.jars\Users\Users\5.6.2\c0833bd6. imman.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-api\5.6.2\c9ba885abfe975cda123bf6f8f0a69a1b46956d0\junit-jupiter-api-5.6\imUsers.jar .gradle\caches\modules-2\files-2.1\org.testng\testng\7.1.0\b0bcea778fb2899aeb4014c558babea8833d180a\testng-7.1.0.jar;C:\Users\imman.gradle-2caches\files 2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;C:\Users\imman.gradle\caches\modules-2\files\org.test40test1 \28c11eb91f9b6d8e200631d46e20a7f407f2a046\opentest4j-1.2.0.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\com.beust\jcommander\1.751e2637 3d4f25a07ce124ccf8cd171\jcommander-1.72.jar;C:\Users\imman.gradle\caches\modules-2\files-2.1\com.google.inject\guice\4.1.0\faf9ee8ac09eafd112809140.guin_jar-1128091400100000000000000000 ;C:\Users\imman.gradle\caches\modules-2\files-2.1\javax.inject\javax.inject\1\6975da39a7040257bd​​51d21a231b76c915872d38\javax.inject-1.jar\caches.gradles\c:\Users \modules-2\files-2.1\aopalliance\aopalliance\1.0\235ba8b489512805ac13a8f9ea77a1ca5ebe3e8\aopalliance-1.0.jar;C:\Users\imman.gradle\caches\modules-2\avacoms.guo 19.0\6ce200f6b23222af3d8abb6b6459e6c44f4bb0e9\guava-19.0.jar ca.immanuel.flappy.Main 成功启动进程'命令'C:/Program Files/Java/jdk-16/bin/java.exe'' 无法创建窗口 :Main.main() (Thread[Execution worker for ':',5,main]) 完成。耗时 0.784 秒。

任务 ':Main.main()' 执行失败。

<块引用>

Process 'command 'C:/Program Files/Java/jdk-16/bin/java.exe'' 以非零退出值 -1 结束

  • 试试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

1 个答案:

答案 0 :(得分:0)

好吧,问题很简单,我从来没有改变过windows值

在长窗口被设置为空之前

但我发现我必须将它设置为等于 glfwCreateWindow:

之前:

glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);

之后:

window = glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);
相关问题