我正在尝试使用以下命令在 MacOS Monterrey 上使用 OpenJDK执行名为fakeSMPTServer的 JAR 文件:
java -jar fakeSMTP-2.0.jar
Run Code Online (Sandbox Code Playgroud)
我收到错误:
03 Apr 2023 10:04:51 ERROR com.nilhcem.fakesmtp.core.exception.UncaughtExceptionHandler -
java.lang.IllegalAccessError: class com.nilhcem.fakesmtp.FakeSMTP$1 (in unnamed module @0x5db54e92) cannot access class com.apple.eawt.Application (in module java.desktop) because module java.desktop does not export com.apple.eawt to unnamed module @0x5db54e92
at com.nilhcem.fakesmtp.FakeSMTP$1.run(FakeSMTP.java:80) ~[fakeSMTP-2.0.jar:na]
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[na:na]
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[na:na]
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) ~[na:na]
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) ~[na:na]
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[na:na]
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[na:na]
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[na:na]
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[na:na]
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[na:na]
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[na:na]
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[na:na]
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[na:na]
Run Code Online (Sandbox Code Playgroud)
以下是 java --version 的输出:
openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment Homebrew (build 19.0.2)
OpenJDK 64-Bit Server VM Homebrew (build 19.0.2, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
这是Java 更高版本的一个已知问题 [ 1 ] [ 2 ]。
解决方案是允许导出 com.apple.eawt。这可以通过将启动命令调整为以下内容来完成:
java --add-exports java.desktop/com.apple.eawt=ALL-UNNAMED -jar fakeSMTP-2.0.jar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1969 次 |
| 最近记录: |