dorkbox / SystemTray

Cross-platform SystemTray support for Swing/AWT, macOS, GtkStatusIcon, and AppIndicator on Java 8+
Other
430 stars 58 forks source link

Illegal access error on windows 10 #161

Closed AriaMoradi closed 2 years ago

AriaMoradi commented 3 years ago

image

running on: Windows 10 Pro 10.0.19042 Build 19042 java: Java 8 Update 291 (Build 1.8.0_291-b10) SystemTray: version 4.1 Utilities: version 1.9

unfortunately this is all I have about on this issue.

AriaMoradi commented 3 years ago

This is from another user with "Windows 10 32 bit latest build" having debug enabled

22:09:43.288 [main] ←[34mINFO ←[0;39m xyz.nulldev.androidcompat.bytecode.ModApplier - Applying Javassist mods...
22:09:44.173 [main] ←[39mDEBUG←[0;39m ir.armor.tachidesk.model.database.migration.lib.RunMigrations - found Migration class ir.armor.tachidesk.model.database.migration.M0001_Initial
22:09:44.849 [main] ←[34mINFO ←[0;39m ir.armor.tachidesk.model.database.migration.lib.RunMigrations - Running migrations on database jdbc:h2:C:\Users\gamer\AppData\Local\Tachidesk/database
22:09:45.758 [main] ←[34mINFO ←[0;39m ir.armor.tachidesk.model.database.migration.lib.RunMigrations - Database version before migrations: 2
22:09:45.759 [main] ←[39mDEBUG←[0;39m ir.armor.tachidesk.model.database.migration.lib.RunMigrations - Skipping migration version 1: Initial
22:09:45.760 [main] ←[34mINFO ←[0;39m ir.armor.tachidesk.model.database.migration.lib.RunMigrations - Migrations finished successfully
22:09:45.778 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - OS: Windows 8.1
22:09:45.780 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Arch: x86
22:09:45.781 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Oracle Corporation Java HotSpot(TM) Client VM 1.8.0_45
22:09:45.781 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Is Auto sizing tray/menu? true
22:09:45.789 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Is JavaFX detected? false
22:09:45.791 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Is SWT detected? false
22:09:45.897 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Java Swing L&F: Metal
22:09:45.897 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Forced tray type: Swing
22:09:45.953 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Tray indicator image size: 16
22:09:45.954 [main] ←[39mDEBUG←[0;39m dorkbox.systemTray.SystemTray - Tray menu image size: 14
Exception in thread "main" java.lang.IllegalAccessError: class sun.awt.windows.WSystemTrayPeer cannot access its superclass sun.awt.windows.WObjectPeer
        at com.sun.jna.Native.invokeVoid(Native Method)
        at com.sun.jna.Function.invoke(Function.java:415)
        at com.sun.jna.Function.invoke(Function.java:361)
        at com.sun.jna.Library$Handler.invoke(Library.java:265)
        at com.sun.proxy.$Proxy5.JVM_DefineClass(Unknown Source)
        at dorkbox.jna.JnaClassUtils.defineClass(JnaClassUtils.java:123)
        at dorkbox.jna.JnaClassUtils.defineClass(JnaClassUtils.java:108)
        at dorkbox.systemTray.util.SystemTrayFixes.fixWindows(SystemTrayFixes.java:244)
        at dorkbox.systemTray.SystemTray.get(SystemTray.java:714)
        at ir.armor.tachidesk.server.util.SystemTrayKt.systemTray(SystemTray.kt:37)
        at ir.armor.tachidesk.server.ServerSetupKt$systemTray$2.invoke(ServerSetup.kt:40)
        at ir.armor.tachidesk.server.ServerSetupKt$systemTray$2.invoke(ServerSetup.kt)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at ir.armor.tachidesk.server.ServerSetupKt.getSystemTray(ServerSetup.kt)
        at ir.armor.tachidesk.server.ServerSetupKt.applicationSetup(ServerSetup.kt:99)
        at ir.armor.tachidesk.Main$Companion.main(Main.kt:18)
        at ir.armor.tachidesk.Main.main(Main.kt)
AriaMoradi commented 3 years ago

from another user: image

AriaMoradi commented 3 years ago

The issue was fixed by removing these two lines that I had copied from https://github.com/dorkbox/SystemTray/blob/master/test/dorkbox/TestTray.java

        if (System.getProperty("os.name").startsWith("Windows"))
            SystemTray.FORCE_TRAY_TYPE = TrayType.Swing

keeping this issue open as TrayType.Swing fails for windows

dorkbox commented 2 years ago

Verified working Win10 + Swing.

Thanks for the info/report!

15:26:49.660 [main] DEBUG dorkbox.systemTray.SystemTray - OS: Windows 10
15:26:49.664 [main] DEBUG dorkbox.systemTray.SystemTray - Arch: amd64
15:26:49.664 [main] DEBUG dorkbox.systemTray.SystemTray - Oracle Corporation Dynamic Code Evolution 64-Bit Server VM 11.0.11
15:26:49.664 [main] DEBUG dorkbox.systemTray.SystemTray - Is Auto sizing tray/menu? true
15:26:49.665 [main] DEBUG dorkbox.systemTray.SystemTray - Is JavaFX detected? false
15:26:49.665 [main] DEBUG dorkbox.systemTray.SystemTray - Is SWT detected? false
15:26:49.945 [main] DEBUG dorkbox.systemTray.SystemTray - Java Swing L&F: Metal
15:26:49.945 [main] DEBUG dorkbox.systemTray.SystemTray - Forced tray type: Swing