Error di Netbeans 24 Java 21 Exception in thread “AWT-EventQueue-0” java.lang.IllegalAccessError: superclass access check failed: class com.sun.java.swing.plaf.windows.XPStyle$SkinPainter (in unnamed module @0x4bb16cf4) cannot access class sun.swing.CachedPainter (in module java.desktop) because module java.desktop does not export sun.swing to unnamed module

Exception in thread “AWT-EventQueue-0” java.lang.IllegalAccessError: superclass access check failed: class com.sun.java.swing.plaf.windows.XPStyle$SkinPainter (in unnamed module @0x4bb16cf4) cannot access class sun.swing.CachedPainter (in module java.desktop) because module java.desktop does not export sun.swing to unnamed module @0x4bb16cf4 at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at com.sun.java.swing.plaf.windows.XPStyle.<clinit>(XPStyle.java:71) at com.sun.java.swing.plaf.windows.WindowsComboBoxUI.createRenderer(WindowsComboBoxUI.java:392) at java.desktop/javax.swing.plaf.basic.BasicComboBoxUI.installUI(BasicComboBoxUI.java:304) at com.sun.java.swing.plaf.windows.WindowsComboBoxUI.installUI(WindowsComboBoxUI.java:144) at java.desktop/javax.swing.JComponent.setUI(JComponent.java:740) at uz.ncipro.calendar.JDateTimePicker.updateUI(JDateTimePicker.java:48) at java.desktop/javax.swing.JComboBox.init(JComboBox.java:266) at java.desktop/javax.swing.JComboBox.<init>(JComboBox.java:260) at uz.ncipro.calendar.JDateTimePicker.<init>(JDateTimePicker.java:26) at widget.Tanggal.<init>(Tanggal.java:17) at keuangan.DlgBilingRalan.initComponents(DlgBilingRalan.java:782) at keuangan.DlgBilingRalan.<init>(DlgBilingRalan.java:201) at simrskhanza.DlgKasirRalan.<init>(DlgKasirRalan.java:254) at simrskhanza.frmUtama.<init>(frmUtama.java:1184) at simrskhanza.frmUtama.getInstance(frmUtama.java:1295) at simrskhanza.SIMRSKhanza.lambda$main$0(SIMRSKhanza.java:27) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Error tersebut menunjukkan bahwa ada masalah dengan akses ke kelas internal di modul Java (sun.swing.CachedPainter) yang tidak diekspor oleh modul java.desktop. Hal ini disebabkan oleh perubahan dalam modularisasi JDK sejak Java 9, di mana akses ke API internal seperti sun.swing tidak lagi diizinkan secara default.

Error ini terjadi karena pustaka atau kode yang Anda gunakan, seperti Swing Look and Feel pada com.sun.java.swing.plaf.windows, mencoba mengakses API internal yang tidak diekspor.

Penyebab Utama

  1. Kode Lama yang Tidak Kompatibel dengan JDK Modern: SIMRS Khanza kemungkinan menggunakan pustaka atau komponen (seperti JDateTimePicker) yang tidak diperbarui untuk mendukung modularisasi JDK.
  2. JDK 21 Memperketat Modul Internal: JDK modern semakin ketat membatasi penggunaan API internal, sehingga pustaka atau framework lama yang mengandalkan modul internal seperti sun.swing akan gagal.

Solusi

1. Gunakan JVM Opsi --add-exports

Tambahkan opsi berikut saat menjalankan aplikasi untuk memperbolehkan modul java.desktop mengekspor sun.swing:

bash
--add-exports=java.desktop/sun.swing=ALL-UNNAMED

Langkah:

  • Jika menjalankan dari NetBeans:
    • Masuk ke Project Properties > Run > VM Options.
    • Tambahkan:
      css
      --add-exports=java.desktop/sun.swing=ALL-UNNAMED
  • Jika menjalankan dari command-line:
    bash
    java --add-exports=java.desktop/sun.swing=ALL-UNNAMED -jar SIMRSKhanza.jar

2. Gunakan JDK Lama

Jika memungkinkan, gunakan JDK yang lebih tua, seperti JDK 8, di mana modularisasi belum diperkenalkan, atau JDK 17 (LTS) dengan lebih sedikit pembatasan dibandingkan JDK 21.

  • BellSoft Liberica JDK 8 atau OpenJDK 8 sering digunakan dengan aplikasi lama seperti SIMRS Khanza.
  • Untuk NetBeans, sesuaikan netbeans_jdkhome di file konfigurasi netbeans.conf.

3. Pembaruan Kode

  • Perbarui pustaka eksternal seperti JDateTimePicker agar kompatibel dengan versi Java modern.
  • Ubah implementasi kode yang menggunakan API internal (seperti sun.swing.CachedPainter) ke alternatif yang didukung.

4. Gunakan OpenJFX untuk JavaFX

Jika Anda bisa mengganti komponen Swing yang bermasalah dengan JavaFX, ini adalah solusi jangka panjang untuk menjaga kompatibilitas dengan versi Java modern.

5. Modifikasi Aplikasi Khanza

  • Anda bisa mencoba memperbaiki kode secara langsung jika memiliki akses ke sumbernya. Periksa bagian JDateTimePicker dan pastikan tidak mengandalkan sun.swing.

Related Post

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x