Heim > Java > javaLernprogramm > Wie behebt man die InaccessibleObjectException von Java 9: ​​JDK- und Anwendungscode-Lösungen?

Wie behebt man die InaccessibleObjectException von Java 9: ​​JDK- und Anwendungscode-Lösungen?

Barbara Streisand
Freigeben: 2024-12-24 11:30:12
Original
454 Leute haben es durchsucht

How to Fix Java 9's InaccessibleObjectException:  JDK and Application Code Solutions?

So lösen Sie die InaccessibleObjectException unter Java 9 auf

Bei der Verwendung von Java 9 können Entwickler auf die InaccessibleObjectException stoßen. Es entsteht aufgrund der Implementierung einer starken Kapselung durch das Java Platform Module System.

Aufschlüsselung der Ausnahmemeldungen:

Unable to make {member} accessible: module {A} does not "opens {package}" to {B}
Nach dem Login kopieren

Hauptszenarien, die die Ausnahme verursachen:

1. Reflektierender Aufruf in JDK

  • {A} ist ein JDK-Modul (z. B. java.base)
  • {member} und {package} gehören zur JDK-API
  • {B} ist ein Bibliotheks-/Framework-/Anwendungsmodul (oft unbenanntes Modul). @...)

2. Reflexion über Anwendungscode

  • {A} ist ein Anwendungsmodul
  • {member} und {package} gehören zum Anwendungscode
  • {B} ist ein Framework-Modul oder unbenanntes Modul @...

1. Lösung für den reflektierenden Aufruf in JDK:

Verwenden Sie das folgende Befehlszeilen-Flag, um das angegebene Paket zur Reflexion zu öffnen:

java --add-opens java.base/java.lang=ALL-UNNAMED
Nach dem Login kopieren

Ersetzen Sie ALL-UNNAMED durch den Namen des Benannten Modul ggf.

2. Lösung für Reflection Over Application Code:

Bearbeiten Sie Modul {A}, um das interne Paket mit einer der folgenden Optionen innerhalb seines Moduldeskriptors zu öffnen:

  • exportiert {Paket} (macht es öffentlich zugänglich)
  • exportiert {Paket} nach {B} (macht es nur zugänglich für B)
  • öffnet {Paket} (macht es zur Laufzeit für den gesamten Code zugänglich)
  • öffnet {Paket} für {B} (macht es zur Laufzeit nur für B zugänglich)
  • Modul {A} { ... } öffnen (macht das gesamte Modul zur Laufzeit für den gesamten Code zugänglich)

Das obige ist der detaillierte Inhalt vonWie behebt man die InaccessibleObjectException von Java 9: ​​JDK- und Anwendungscode-Lösungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage