Closed tresf closed 3 years ago
Hi @tresf, did you include --add-opens java.desktop/sun.lwawt.macosx=ALL-UNNAMED as jvm parameter?
It is necessary to allow reflection on this protected field.
@dyorgio that got me further.
I needed the following for it to work:
--add-opens java.desktop/sun.lwawt.macosx=ALL-UNNAMED
--add-opens java.desktop/java.awt=ALL-UNNAMED
... or else:
java.lang.reflect.InaccessibleObjectException: Unable to make field private transient java.awt.peer.TrayIconPeer java.awt.TrayIcon.peer accessible: module java.desktop does not "opens java.awt" to unnamed module @2b546384
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
When running the project against OpenJDK16, it does not work. Investigation points to this line.
https://github.com/dyorgio/macos-tray-icon-fixer/blob/25c2b7e3fe012be1e34eb33c3ccca92aaf5616d4/src/main/java/dyorgio/runtime/macos/trayicon/fixer/MacOSTrayIconFixer.java#L90