我试着学习LWJGL . 关于用LWJGL复制Flappy Birds的问题,我对这个问题感到困惑,就像那个问this question的人一样 .
我在MacBook Pro Retina上使用Eclipse .
问题是这个
线程“Game”中的异常java.lang.IllegalStateException:请使用-XstartOnFirstThread运行JVM . 在org.lwjgl.system.macosx.EventLoop.checkFirstThread(EventLoop.java:20)org.lwjgl.glfw.GLFW.glfwInit(GLFW.java:428)at com.cherno.flappy.Main.init(Main.java) :41)at com.cherno.flappy.Main.run(Main.java:65)at java.lang.Thread.run(Thread.java:745)
由此代码给出:
package com.cherno.flappy;
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 int width = 1280;
private int height = 720;
private boolean running = false;
private Thread thread;
/*window è un long perché lwjgl è un bindng di c in java.
* Non esistono oggetti in c, solo id, ed ecco cosa abbiamo.
*/
private long window;
public void start() {
running = true;
thread = new Thread(this, "Game"); //Punto (A)
thread.start(); //Lo start fa partire il run di sotto
}
/*Inizializzo OpenGL qui dentro
* OpenGL gira in un thread solo!! RICORDALO
*/
private void init() {
if (glfwInit() != GL_TRUE) {
//Handle it
return;
}
glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
//Creo la finestra e mi faccio tornare il puntatore di C
window = glfwCreateWindow(width, height, "Flappy", NULL, NULL);
//Vedo se la finestra è creata
if (window == NULL) {
//MAke something
return;
}
ByteBuffer vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
//Decido la posizione della finestra
glfwSetWindowPos(window, (GLFWvidmode.width(vidmode)-width)/2, (GLFWvidmode.height(vidmode)-height)/2);
//Setto il contesto per OpenGL
glfwMakeContextCurrent(window);
//Mostro la finestra
glfwShowWindow(window);
}
public void run() {
init();
while(running) {
update();
render();
//Controllo se l'utente vuole uscire
if(glfwWindowShouldClose(window) == GL_TRUE) running = false;
}
}
private void update() {
glfwPollEvents();
}
private void render() {
glfwSwapBuffers(window);
}
public static void main(String args[]) {
new Main().start();
}
}
该异常明确要求我使用-XstartOnThread参数启动jvm . 我在Eclipse中“运行>运行配置>参数选项卡> vm参数”并输入“-XstartOnThread”;然后我点击“运行”,我收到此错误:
进程:java [569]路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java标识符:java版本:1.0(1.0)代码类型:X86-64(Native)父进程:eclipse [478]负责人:eclipse [478]用户名:501日期/时间:2015-08-06 21:41:32.956 0200操作系统版本:Mac OS X 10.10.4(14E46)报告版本:11匿名用户名:CBCCB665 -9B7F-C8CC-612E-828FAD3AA52D自引导时间唤醒:1500秒崩溃线程:20 Java:游戏异常类型:EXC_CRASH(SIGABRT)异常代码:0x0000000000000000,0x0000000000000000应用程序特定信息:***由于未捕获异常而终止应用程序'NSInternalInconsistencyException ',原因:'[NSUndoManager(NSInternal)_endTopLevelGroupings]只能安全地在主线程上调用 . 以NSException类型的未捕获异常终止abort(),称为Application Specific Backtrace 1:0 CoreFoundation 0x00007fff879b203c __exceptionPreprocess 172 1 libobjc.A.dylib 0x00007fff89d8676e objc_exception_throw 43 2 CoreFoundation 0x00007fff879b1e1a [NSException raise:format:arguments:] 106 3 Foundation 0x00007fff8e3178cb - [NSAssertionHandler handleFailureInMethod :object:file:lineNumber:description:] 195 4 Foundation 0x00007fff8e29957f [NSUndoManager(NSPrivate)_endTopLevelGroupings] 156 5 AppKit 0x00007fff87f51c41 - [NSApplication run] 928 6 liblwjgl.dylib 0x0000000121828a2e _glfwPlatformCreateWindow 1406 7 liblwjgl.dylib 0x0000000121824d9b glfwCreateWindow 443 8 ??? 0x000000010977e954 0x0 4453820756 9 ??? 0x0000000109770760 0x0 4453762912 10 ??? 0x0000000109770760 0x0 4453762912 11 ??? 0x0000000109770c4d 0x0 4453764173 12 ??? 0x0000000109770c92 0x0 4453764242线程0 ::调度队列:com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fff8a578136 psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6a7b4 os :: PlatformEvent :: park()192 2 libjvm.dylib 0x0000000108c48504 ParkCommon(ParkEvent *,long )42 3 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread *,long)168 4 libjvm.dylib 0x0000000108c48fc2 Monitor :: wait(bool,long,bool)246 5 libjvm.dylib 0x0000000108d4990e Threads :: destroy_vm()80 6 libjvm . dylib 0x0000000108b15e43 jni_DestroyJavaVM 254 7的java 0x0000000107d7b2b2 JavaMain 805 8的java 0x0000000107d7d59c - [JavaLaunchHelper launchJava:] 42 9 com.apple.Foundation 0x00007fff8e2e1d00 __NSThreadPerformPerform 293 10 com.apple.CoreFoundation 0x00007fff878cea01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION 17 11 com.apple.CoreFoundation 0x00007fff878c0b8d __CFRunLoopDoSources0 269 12 com.apple .CoreFoundation 0x00007fff878c01bf __CFRunLoopRun 927 13 com.apple.CoreFoundation 0x00007fff878bfbd8 CFRunLoopRunSpecific 296 14的java 0x0000000107d7e463 CreateExecutionEnvironment 871 15的java 0x0000000107d7a1ac JLI_Launch 1952 16的java 0x0000000107d804c0主101 17的java 0x0000000107d79a04开始52线程1:0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 com.apple.Foundation 0x00007fff8e28df08 - [NSCondition等待] 237 2 com.apple注释0x00007fff8e27ed9e - [NSObject(NSThreadPerformAdditions)performSelector:onThread:withObject:waitUntilDone:modes:] 823 3 com.apple.Foundation 0x00007fff8e27e9e9 - [NSObject(NSThreadPerformAdditions)performSelectorOnMainThread:withObject:waitUntilDone:] 131 4 java 0x0000000107d7d7b5 JVMInit 251 5 java 0x0000000107d7acf1 JLI_Launch 4837 6 java 0x0000000107d804c0 main 101 7 java 0x0000000107d7e0f5 apple_main 92 8 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 9 libsystem_pthread.dylib 0x00007fff8a4b81e5 pthread_start 176 10 libsystem_pthread.dylib 0x00007fff8a4b641d thread start 13 Thread 2 :: Dispatch queue:com.apple.libdispatch-manager 0 libsystem_kernel.dylib 0x00007fff8a579232 kevent64 10 1 libdispatch.dylib 0x00007fff8f674a6a _dispatch_mgr_thread 52线程3:0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6a7b4 os :: PlatformEvent: :park()192 2 libjvm.dylib 0x0000000108c48504 ParkCommon(ParkEvent *,long)42 3 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread ,long)168 4 libjvm.dylib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 5 libjvm.dylib 0x0000000108a6b1a6 GCTaskManager :: get_task(unsigned int)56 6 libjvm.dylib 0x0000000108a6bf85 GCTaskThread ::运行()349 7 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 8 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 9 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 10 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13螺纹4:0 libsystem_kernel . dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6a7b4 os :: PlatformEvent :: park()192 2 libjvm.dylib 0x0000000108c48504 ParkCommon(ParkEvent *,long)42 3 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread ,long)168 4 libjvm .dylib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 5 libjvm.dylib 0x0000000108a6b1a6 GCTaskManager :: get_task(unsigned int)56 6 libjvm.dylib 0x0000000108 a6bf85 GCTaskThread ::运行()349 7 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 8 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 9 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 10 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13螺纹5:0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6a7b4 os :: PlatformEvent :: park()192 2 libjvm.dylib 0x0000000108c48504 ParkCommon(ParkEvent *,long)42 3 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread *,long)168 4 libjvm.dylib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 5 libjvm.dylib 0x0000000108a6b1a6 GCTaskManager :: get_task(unsigned int)56 6 libjvm.dylib 0x0000000108a6bf85 GCTaskThread :: run()349 7 libjvm.dylib 0x0000000108c6e99e java_start(Thread *)246 8 libsystem_pthread .dylib 0x00007fff8a4b8268 _pthread_body 131 9 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 10 libsystem_pthread.dylib 0x0000 7fff8a4b641d thread_start 13线程6:0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6a7b4 os :: PlatformEvent :: park()192 2 libjvm.dylib 0x0000000108c48504 ParkCommon(ParkEvent *,long)42 3 libjvm.dylib 0x0000000108c48dda Monitor :: IWait (Thread ,long)168 4 libjvm.dylib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 5 libjvm.dylib 0x0000000108a6b1a6 GCTaskManager :: get_task(unsigned int)56 6 libjvm.dylib 0x0000000108a6bf85 GCTaskThread :: run()349 7 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 8 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 9 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 10 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13螺纹7:0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6b69e OS :: PlatformEvent :: park(long)404 2 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread *,long)168 3 libjvm.dy lib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 4 libjvm.dylib 0x0000000108d9486a VMThread :: loop()444 5 libjvm.dylib 0x0000000108d942f5 VMThread :: run()121 6 libjvm.dylib 0x0000000108c6e99e java_start(Thread *)246 7 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 8 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 9 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13螺纹8 ::爪哇:参考处理程序0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1个libjvm.dylib 0x0000000108c6a7b4 OS :: PlatformEvent ::公园()192 2 libjvm.dylib 0x0000000108c62952 ObjectMonitor :: wait(long,bool,Thread )748 3 libjvm.dylib 0x0000000108d17978 ObjectSynchronizer :: wait(句柄,长,线程)202 4 libjvm.dylib 0x0000000108b39a16 JVM_MonitorWait 156 5 ??? 0x000000010977e954 0 4453820756 6 ??? 0x0000000109770c4d 0 4453764173 7 ??? 0x0000000109770c4d 0 4453764173 8 ??? 0x00000001097697a7 0 4453734311 9 libjvm.dylib 0x0000000108ae01e2 JavaCalls :: call_helper(JavaValue *,methodHandle *,JavaCallArguments *,Thread *)1710 10 libjvm.dylib 0x0000000108ae0970 JavaCalls :: call_virtual(JavaValue *,KlassHandle,Symbol *,Symbol *,JavaCallArguments ,线程)356 11 libjvm.dylib 0x0000000108ae0b1c JavaCalls :: call_virtual(JavaValue *,Handle,KlassHandle,Symbol *,Symbol *,Thread *)74 12 libjvm.dylib 0x0000000108b3305d thread_entry(JavaThread *,Thread )124 13 libjvm.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner()155 14 libjvm.dylib 0x0000000108d4b160 JavaThread ::运行()450 15 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 16 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 17 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 18 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13线程9 :: Java:Finalizer 0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108 c6a7b4 os :: PlatformEvent :: park()192 2 libjvm.dylib0x0000000108c62952 ObjectMonitor :: wait(long,bool,Thread *)748 3 libjvm.dylib 0x0000000108d17978 ObjectSynchronizer :: wait(Handle,long,Thread *)202 4 libjvm.dylib 0x0000000108b39a16 JVM_MonitorWait 156 5 ??? 0x000000010977e954 0 4453820756 6 ??? 0x0000000109770c4d 0 4453764173 7 ??? 0x00000001097709d0 0 4453763536 8 ??? 0x00000001097709d0 0 4453763536 9 ??? 0x00000001097697a7 0 4453734311 10 libjvm.dylib 0x0000000108ae01e2 JavaCalls :: call_helper(JavaValue *,methodHandle *,JavaCallArguments *,Thread *)1710 11 libjvm.dylib 0x0000000108ae0970 JavaCalls :: call_virtual(JavaValue *,KlassHandle,Symbol *,Symbol *,JavaCallArguments ,线程)356 12 libjvm.dylib 0x0000000108ae0b1c JavaCalls :: call_virtual(JavaValue *,Handle,KlassHandle,Symbol *,Symbol *,Thread *)74 13 libjvm.dylib 0x0000000108b3305d thread_entry(JavaThread *,Thread )124 14 libjvm.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner()155 15 libjvm.dylib 0x0000000108d4b160 JavaThread ::运行()450 16 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 17 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 18 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 19 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13线程10:0 libsystem_kernel.dylib 0x00007fff8a57894a __workq_kernreturn 10 1 libsystem_pthread.dylib 0x00007fff8a4 b640d start_wqthread 13螺纹11:0 libsystem_kernel.dylib 0x00007fff8a57894a __workq_kernreturn 10 1个libsystem_pthread.dylib 0x00007fff8a4b640d start_wqthread 13螺纹12:0 libsystem_kernel.dylib 0x00007fff8a57894a __workq_kernreturn 10 1个libsystem_pthread.dylib 0x00007fff8a4b640d start_wqthread 13螺纹13:0 libsystem_kernel.dylib 0x00007fff8a57894a __workq_kernreturn 10 1 libsystem_pthread . dylib 0x00007fff8a4b640d start_wqthread 13线程14 :: Java:信号调度程序0 libsystem_kernel.dylib 0x00007fff8a57351a semaphore_wait_trap 10 1 libjvm.dylib 0x0000000108c6cd04 check_pending_signals(bool)128 2 libjvm.dylib 0x0000000108c69845 signal_thread_entry(JavaThread *,Thread *)57 3 libjvm.dylib 0x0000000108d49a6f JavaThread: :thread_main_inner()155 4 libjvm.dylib 0x0000000108d4b160 JavaThread :: run()450 5 libjvm.dylib 0x0000000108c6e99e java_start(Thread )246 6 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 7 libsystem_pthread.dylib 0x00007 fff8a4b81e5 _pthread_start 176 8 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13线程15 :: Java:C2 CompilerThread0 0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6b69e os :: PlatformEvent :: park(long)404 2 libjvm.dylib 0x0000000108c48dda Monitor :: IWait (Thread ,long)168 3 libjvm.dylib 0x0000000108c48faa Monitor :: wait(bool,long,bool)222 4 libjvm.dylib 0x00000001089b24b2 CompileQueue :: get()122 5 libjvm.dylib 0x00000001089b26d4 CompileBroker :: compiler_thread_loop()376 6 libjvm名为.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner()155 7 libjvm.dylib 0x0000000108d4b160 JavaThread ::运行()450 8 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 9 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 10 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 11 libsystem_pthread . dylib 0x00007fff8a4b641d thread_start 13线程16 :: Java:C2 CompilerThread1 0 libsystem_kernel.dylib 0x00 007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6b69e os :: PlatformEvent :: park(long)404 2 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread ,long)168 3 libjvm.dylib 0x0000000108c48faa Monitor :: wait(bool,long,bool )222 4 libjvm.dylib 0x00000001089b24b2 CompileQueue :: get()122 5 libjvm.dylib 0x00000001089b26d4 CompileBroker :: compiler_thread_loop()376 6 libjvm.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner()155 7 libjvm.dylib 0x0000000108d4b160 JavaThread :: run()450 8 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 9 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 10 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 11 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13螺纹17 ::爪哇:C1 CompilerThread2 0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm . dylib 0x0000000108c6b69e os :: PlatformEvent :: park(long)404 2 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread * ,长)168 3 libjvm.dylib 0x0000000108c48faa Monitor :: wait(bool,long,bool)222 4 libjvm.dylib 0x00000001089b24b2 CompileQueue :: get()122 5 libjvm.dylib 0x00000001089b26d4 CompileBroker :: compiler_thread_loop()376 6 libjvm.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner()155 7 libjvm.dylib 0x0000000108d4b160 JavaThread ::运行()450 8 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 9 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 10 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 11 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13线程18 ::Java:服务线程0 libsystem_kernel.dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6a7b4 os :: PlatformEvent :: park()192 2 libjvm.dylib 0x0000000108c48504 ParkCommon(ParkEvent *,long)42 3 libjvm.dylib 0x0000000108c48dda Monitor :: IWait(Thread *,long)168 4 libjvm.dylib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 5 libjvm.dylib 0x0000000108cc3b36 ServiceThread :: service_thread_entry(JavaThread *,Thread )132 6 libjvm.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner() 155 7 libjvm.dylib 0x0000000108d4b160 JavaThread ::运行()450 8 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 9 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 10 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 11 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13螺纹19:0 libsystem_kernel .dylib 0x00007fff8a578136 __psynch_cvwait 10 1 libjvm.dylib 0x0000000108c6b69e os :: PlatformEvent :: park(long)404 2 libjvm .dylib 0x0000000108c48dda Monitor :: IWait(Thread *,long)168 3 libjvm.dylib 0x0000000108c49043 Monitor :: wait(bool,long,bool)375 4 libjvm.dylib 0x0000000108d49f42 WatcherThread :: sleep()const 126 5 libjvm.dylib 0x0000000108d4add5 WatcherThread :: run()243 6 libjvm.dylib 0x0000000108c6e99e java_start(Thread *)246 7 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 8 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 9 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13 Thread 20 Crashed :: Java:Game 0 libsystem_kernel.dylib 0x00007fff8a578286 __pthread_kill 10 1 libsystem_c.dylib 0x00007fff91eecb53中止129 2的libc abi.dylib 0x00007fff8a8fda21 abort_message 257 3的libc abi.dylib 0x00007fff8a9259d1 default_terminate_handler()267 4 libobjc.A.dylib 0x00007fff89d8a7d6 _objc_terminate()103 5的libc abi.dylib 0x00007fff8a9230a1的std :: __终止( void()())8 6 libc abi.dylib 0x00007fff8a922b30 __cxa_throw 121 7 libobjc.A.dylib 0x000 07fff89d86898 objc_exception_throw 341 8 com.apple.CoreFoundation 0x00007fff879b1e1a [NSException raise:format:arguments:] 106 9 com.apple.Foundation 0x00007fff8e3178cb - [NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] 195 10 com.apple.Foundation 0x00007fff8e29957f [ NSUndoManager(NSPrivate)_endTopLevelGroupings] 156 11 com.apple.AppKit 0x00007fff87f51c41 - [NSApplication run] 928 12 liblwjgl.dylib 0x0000000121828a2e _glfwPlatformCreateWindow 1406 13 liblwjgl.dylib 0x0000000121824d9b glfwCreateWindow 443 14 ??? 0x000000010977e954 0 4453820756 15 ??? 0x0000000109770760 0 4453762912 16 ??? 0x0000000109770760 0 4453762912 17 ??? 0x0000000109770c4d 0 4453764173 18 ??? 0x0000000109770c92 0 4453764242 19 ??? 0x00000001097697a7 0 4453734311 20 libjvm.dylib 0x0000000108ae01e2 JavaCalls :: call_helper(JavaValue,methodHandle *,JavaCallArguments *,Thread *)1710 21 libjvm.dylib 0x0000000108ae0970 JavaCalls :: call_virtual(JavaValue *,KlassHandle,Symbol *,Symbol *,JavaCallArguments *,Thread *)356 22 libjvm.dylib 0x0000000108ae0b1c JavaCalls :: call_virtual(JavaValue *,Handle,KlassHandle,Symbol *,Symbol *,Thread *)74 23 libjvm.dylib 0x0000000108b3305d thread_entry(JavaThread *,Thread )124 24 libjvm.dylib 0x0000000108d49a6f JavaThread :: thread_main_inner()155 25 libjvm.dylib 0x0000000108d4b160 JavaThread ::运行()450 26 libjvm.dylib 0x0000000108c6e99e java_start(线程)246 27 libsystem_pthread.dylib 0x00007fff8a4b8268 _pthread_body 131 28 libsystem_pthread.dylib 0x00007fff8a4b81e5 _pthread_start 176 29 libsystem_pthread.dylib 0x00007fff8a4b641d thread_start 13线程20与X86线程状态(64位)崩溃:rax:0x0000000000000000 rbx:0x0000000000000006 rcx:0x00000001217b7c 58 RDX:0x0000000000000000 RDI:0x0000000000004903 RSI:0x0000000000000006 RBP:0x00000001217b7c80 RSP:0x00000001217b7c58 R8:0x6e6f697470656378 R9:0x00007fff91f16d70 R10:0x0000000008000000 R11:0x0000000000000206 R12:0x00000001217b7de0 R13:0x00007fe7c0d223f0 R14:0x00000001217ba000 R15:0x00000001217b7cc0 RIP:0x00007fff8a578286 RFL:0x0000000000000206 CR2:0x00007fff7722bfd8逻辑CPU:0错误代码:0x02000148陷阱号:133
3 回答
你确定你的旗帜正确吗?在一个地方你说
-XstartOnFirstThread但是你提供-XstartOnThread参数 . 这可能只是一个错字,但这显然是Mac上的known issue .
标志剂量通常有效,有人可以通过很多google-fu找到广泛的指示,用于追踪机器上运行的确切线程的确切pid,并检查标志是否已设置 . 但是,正如我在做同样的事情,你是我拥有你真正想要的东西 . 编译的代码......(我已尽可能多地留下评论,它是许多人的混蛋编译Lwjgl3开始了toutorials ....作为一个伟大的谢谢他们帮助我直接打击OSX . ....快乐的鸟拍.....到目前为止,Lwjgl3是最好的之一...... [C] herno ....热爱这项工作
看来你正在用
new Main().start();
创建另一个Main类既然你是主力,也许试试
this.start();
此外,如果这不能解决您的问题,请尝试创建包含所有Thread内容的第二个类,然后执行:
new MyThreadClass.start();
.