У меня есть «-XstartOnFirstThread» в моих аргументов VM, но я все еще получаю сообщение об ошибке:GLFW Window сбоями Даже с «-XstartOnFirstThread» В VM Аргументы
Exception in thread "Thread-0" java.lang.ExceptionInInitializerError
at org.lwjgl.glfw.GLFW.glfwCreateWindow(GLFW.java:1248)
at Main.init(Main.java:33)
at Main.run(Main.java:56)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: GLFW windows may only be created on the main thread.
at org.lwjgl.glfw.EventLoop$OffScreen.<clinit>(EventLoop.java:39)
... 4 more
Мой код:
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.system.MemoryUtil.*;
import org.lwjgl.glfw.*;
public class Main implements Runnable {
private Thread thread;
private boolean running;
public long window;
public static void main(String[] args) {
Main game = new Main();
game.start();
}
public void start() {
running = true;
thread = new Thread(this);
thread.start();
}
public void init() {
if(glfwInit() != GL_TRUE) {
System.err.println("GLFW Initialization Failed!");
}
glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
window = glfwCreateWindow(800, 600, "test", NULL, NULL);
if(window == NULL) {
System.err.println("Could not create our window!");
}
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
glfwSetWindowPos(window, 100, 100);
glfwMakeContextCurrent(window);
glfwShowWindow(window);
}
public void update() {
glfwPollEvents();
}
public void render() {
glfwSwapBuffers(window);
}
public void run() {
init();
while(running) {
update();
render();
if(glfwWindowShouldClose(window) == GL_TRUE) {
running = false;
}
}
}
}
Я задаю этот вопрос здесь, потому что я огляделся и не видел решения, размещенного для этого в другом месте. Спасибо за помощь!