Java JNI没有';不要在AppKit线程上工作

Java JNI没有';不要在AppKit线程上工作,java,macos,swing,java-native-interface,Java,Macos,Swing,Java Native Interface,我正在从Mac上的Swing应用程序调用本机函数。调用来自AWT-EventQueue-0线程。我调用了一些异步本机API,并最终在AppKit线程的回调中结束([NSThread isMainThread]==TRUE)。问题是JNI不能在AppKit线程上工作。例如,调用env->FindClass会导致SIGABRT崩溃我的应用程序。但是,JNI在EventQueue线程中正常工作 如何在AWT-EventQueue-0线程内执行本机回调代码,或使JNI在AppKit线程内工作 OpenJ

我正在从Mac上的Swing应用程序调用本机函数。调用来自AWT-EventQueue-0线程。我调用了一些异步本机API,并最终在AppKit线程的回调中结束(
[NSThread isMainThread]==TRUE
)。问题是JNI不能在AppKit线程上工作。例如,调用env->FindClass会导致SIGABRT崩溃我的应用程序。但是,JNI在EventQueue线程中正常工作

如何在AWT-EventQueue-0线程内执行本机回调代码,或使JNI在AppKit线程内工作


OpenJDK 1.7、OS X 10.10、XCode 6.1.1不确定这是否有帮助,因为如果没有更多信息,很难准确地知道发生了什么,但当我在一个线程中存储一个env指针,然后在另一个线程中使用该指针时,我遇到了这个问题。不同的线程需要自己的env指针。

请提供完整的堆栈跟踪和一个代码示例(如果可能,可运行)