启动java应用程序时获取非法反射访问错误
我正在尝试使用一种叫做仓鼠模拟器的伪编程语言。它是用java编写的,我在启动时遇到了一些问题。我从安装了openJDK 8,并运行MacOSX 10.15.7 这是我的控制台打印出的错误:启动java应用程序时获取非法反射访问错误,java,macos,reflection,Java,Macos,Reflection,我正在尝试使用一种叫做仓鼠模拟器的伪编程语言。它是用java编写的,我在启动时遇到了一些问题。我从安装了openJDK 8,并运行MacOSX 10.15.7 这是我的控制台打印出的错误: fabian@Fabians-iMac ~ % java -jar /Users/fabian/Desktop/hamstersimulator/hamstersimulator.jar WARNING: An illegal reflective access operation has occu
fabian@Fabians-iMac ~ % java -jar /Users/fabian/Desktop/hamstersimulator/hamstersimulator.jar
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/Users/fabian/Desktop/hamstersimulator/lib/gluegen-rt.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2020-10-26 19:47:08.247 java[1363:26814] Apple AWT Internal Exception: NSWindow drag regions should only be invalidated on the Main Thread!
2020-10-26 19:47:08.248 java[1363:26814] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff36363b57 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6f1d45bf objc_exception_throw + 48
2 CoreFoundation 0x00007fff3638c34c -[NSException raise] + 9
3 AppKit 0x00007fff335865ec -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 310
4 AppKit 0x00007fff3356e052 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1416
5 AppKit 0x00007fff3356dac3 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
6 libnativewindow_macosx.jnilib 0x000000014ef1f3fe Java_jogamp_nativewindow_macosx_OSXUtil_CreateNSWindow0 + 398
7 ??? 0x000000010f1ab330 0x0 + 4548375344
)
libc++abi.dylib: terminating with uncaught exception of type NSException
zsh: abort java -jar /Users/fabian/Desktop/hamstersimulator/hamstersimulator.jar
fabian@Fabians-iMac ~ %
您看到的第一个“错误”不是错误,而是警告,因此它的前缀是
warning
。实际上,这并不意味着应用程序无法运行或失败,它只是说:嘿,它正在做的事情可能会在未来的java版本中停止工作,即使它现在仍然可以工作
第二部分(从2020-10-26
开始)与第一部分没有任何关系,是appkit或VM代码中的一个bug,允许AWT元素(java GUI小部件)在mac os上呈现,可能会因为仓鼠模拟器做了一些规范不允许但在windows上可以工作的事情而恶化。这意味着它仍然是仓鼠模拟器中的一个bug,但这是一个令人恼火的bug,作者可能无法重现,并可能错误地将其归咎于苹果或甲骨文。而在中间,你甚至不知道该责备谁,更不用说如何让他们来解决问题了。我认为后者(仓鼠模拟器的bug)更有可能
如果没有仓鼠模拟器.jar的源代码和仓鼠模拟器所做的大量知识,那么除了联系仓鼠模拟器的作者,尝试一些不同的虚拟机之外,您在这里只能做很少的事情(但是如果您得到警告,这个仓鼠模拟器是旧的,所以可能是旧的VM,但是请注意,这些都是不受支持的,因此可能存在未修复且永远不会修复的安全问题,所以这里有龙和所有这些)首先,了解错误和警告之间的区别是非常重要的。你仍然可以得到仓鼠代码并尝试修复这件事,在等待指定作者的答复之前,我想说,这是一个机会。谢谢你的详细解释。接受它。