Alternative für veraltete indizierte Standard-Override-Mechanismen und Erweiterungsmechanismen

9

Die Versionshinweise für Java 8 Update 40 (8u40) :

  

Der Übersteuerungsmechanismus der unterstützten Standards und der Erweiterungsmechanismus   sind veraltet und werden möglicherweise in einer zukünftigen Version entfernt. Es gibt keine   Laufzeit ändert sich. Bestehende Anwendungen, die die "anerkannten Standards" verwenden   Override- oder Extension-Mechanismen werden empfohlen, um zu migrieren   von der Verwendung dieser Mechanismen.

Es gibt auch das Problem, dass Jigsaw (geplant für Java SE 9, AFAIK) durch einen modularen Ansatz ersetzt wird:

Ссылка

Ich verstehe, dass Oracle diese Mechanismen jetzt ablehnen möchte, weil sie sie in Java SE 9 nicht mehr unterstützen können.

Auf der anderen Seite ist es keine gute Vorgehensweise, etwas zu verwerfen, ohne eine Alternative anzubieten.

In den Versionshinweisen heißt es: "Vorhandene Anwendungen [...] werden empfohlen, die Verwendung dieser Mechanismen zu umgehen"

Wie können Sie also "wegwandern"

  • Indossierter-Standards-Override-Mechanismus
  • Erweiterungsmechanismus

in Java SE 8?

    
Puce 11.03.2015, 10:20
quelle

3 Antworten

1

Ich habe den folgenden Artikel gefunden, der erklärt, dass diese Mechanismen tatsächlich in Java SE 9 entfernt werden sollen:

Ссылка

Leider scheint es nicht viel zu geben, was Sie jetzt tun können, z. für Bibliotheken, die Teil der JRE sind.

  

Was tun, wenn Sie betroffen sind?

     

Obwohl die meisten Anwendungen nicht verwenden   die befürworteten Normen oder Erweiterungsmechanismen, tun einige Anwendungen.   Wenn Sie ein Entwickler sind, denken Sie daran, Abhängigkeiten als Teil bereitzustellen   Ihrer Anwendung, anstatt ein externes System zu benötigen   Konfigurationen. Wenn Sie nicht der Entwickler sind, kontaktieren Sie bitte die   einzelner Softwareanbieter für Unterstützung.

    
Puce 12.03.2015 00:27
quelle
0

Mit Java 8 können Sie den veralteten Mechanismus weiterhin verwenden. Oracle bietet nur eine Möglichkeit, zu überprüfen, ob Ihre Anwendung den Mechanismus mit diesem java.exe-Flag -XX:+CheckEndorsedAndExtDirs [ 1 ] verfügbar in Java 8 Update 40 und höher.

Wenn Sie auf Java 9 aktualisieren, um zu vermeiden, dass Ihre Java-Anwendung zur Laufzeit abstürzt, mit NoClassDefFoundError, verursacht durch ClassNotFoundException wie

%Vor%

Sie müssen Ihre java.exe Start-Befehlszeilen mit Argumenten wie aktualisieren     --add-Module     --Patch-Modul     -add-exports

Ein konkretes Beispiel finden Sie im Beitrag von Grzegorz Grzybek vom September 2016 zum jacorb-developer mailing [ 2 ]. Wir mussten die Windows-Stapeldatei unserer Anwendung mit den zusätzlichen Java 9-Befehlszeilenargumenten wie

aktualisieren

Nun, es verbindet sich nicht mit Persistenz aber es stürzte nicht

%Vor%     
buzz3791 05.05.2017 19:29
quelle
-1

Ihr Fallback ist jetzt, Ihre Klassenpfad-Verzeichnisse und JAR-Dateien explizit aufzuführen, wenn Sie die Java-Instanz ausführen.

    
Robert Casey 23.02.2017 22:38
quelle

Tags und Links