Diese Produktversion unterstützt die Spezifikation
Java™ Platform, Standard Edition (Java SE) 6. Die Java Virtual Machine stellt einen Java-Compiler und eine Java-Laufzeitumgebung bereit.
Prüfen Sie, ob die neuen und vorhandenen Anwendungen die neue Funktionalität von
Java SE 6 nutzen, passen Sie den JIT-Modus bei Bedarf an,
und beginnen Sie mit der Umstellung der veralteten Funktionen auf die neuen.
Informationen zu diesem Vorgang
Die folgenden JSRs sind neu in Java SE 6:
- JSR 105: XML Digital Signature Application Programming Interfaces (APIs)
- JSR 173: Streaming API for XML (StAX)
- JSR 181: Web Services Metadata
- JSR 199: Java Compiler API
- JSR 202: Java Class-File
Specification Update
- JSR 221: Java DataBase Connectivity
(JDBC) 4.0
- JSR 222: Java Architecture
for XML Binding (JAXB) 2.0
- JSR 223: Scripting for the Java Platform
- JSR 224: Java API for XML-Based
Web Services (JAX-WS) 2.0
- JSR 250: Common Annotations
- JSR 269: Pluggable Annotation-Processing API
Die neue VM-Spezifikation
fügt mehrere Features und Funktionen hinzu, von denen
Anwendungsentwickler profitieren können, z. B. Schnittstellen für die Integration von
Java und scriptbasierten Sprachen, Aufforderungen zur Kennworteingabe, Erweiterungen bei der Dateiein-/-ausgabe und
Syntaxanalyse von Streaming-XML-Dokumenten.
Vorgehensweise
Ermitteln Sie, ob der Standard-JIT-Modus verwendet werden soll. Bei
Java SE 6 ist der Standard-JIT-Modus für die Solaris-VM
abhängig von der Hardwarekonfiguration.
Dieser Modus ist nicht immer client.
In Java SE 6 wechselt die VM (virtuelle Maschine) automatisch in den JIT-Modus server,
wenn Hardware der Serverklasse (d. h. 2 oder mehr CPUs und ein RAM mit mehr als 2 GB) verwendet wird.
Damit Sie den Parameter
-server oder -client entsprechend Ihren Anforderungen konfigurieren können,
definieren Sie die generischen JVM-Argumente der Serverprozessdefinition.
Weitere Informationen finden Sie im Artikel zu den JVM-Einstellungen.
- Legen Sie fest, ob die Vorteile der neuen
Java SE-6-Funktionalität in Ihren Anwendungen genutzt werden sollen.
Sie können Anwendungen mit den Java SE 6-Features nur auf Knoten der Version 7 oder höher implementieren,
da frühere Produktversionen keine JVM von Java SE 6 bereitstellen.
In Anwendungen, die auf interne Java-VM-Klassen und -APIs zugreifen,
könnten Fehler auftreten. Diese Klassen und
APIs werden durch die Spezifikation Java SE 6 nicht abgedeckt, und können daher Änderungen unterliegen.
Außerdem wird dringend davon abgeraten, Implementierungen von XML- und XSL-Parsern direkt zu verwenden.
Hierzu gehören beispielsweise die direkte Verwendung von Xerces- und Xalan-Klassen, die die JAXP-Implementierung
(Java API for XML Processing)
für die virtuelle Maschine bereitstellen.
Die direkten Parser-APIs gelten ebenfalls als "intern", und Änderungen bleiben vorbehalten.
Anwendungen sollten nur auf den JAXP-APIs basieren, die in der API-Dokumentation zu Java SE 6 definiert sind. Wenn Ihre Anwendung eine besondere Version von
Xerces oder Xalan oder einige andere XML/XSL-Parser-Pakete erfordert, integrieren Sie den Parser in das Verzeichnis
WEB-INF/lib Ihrer Anwendung,
und konfigurieren Sie den entsprechenden Klassenlademodus in Ihrer Anwendungsimplementierung so, dass die XML-Parser-APIs
aus dem Klassenpfad der Anwendung
und nicht aus dem Bootstrapklassenpfad der Java-VM geladen werden. Die Nichtbeachtung dieser Richtlinie kann zu
erheblichen Fehlern führen, wenn Sie eine Migration auf eine neue Java SE 6-Stufe durchführen möchten.
- Kompilieren Sie Java SE 6-Anwendungen für die Ausführung in früheren JVM-Versionen, indem Sie die Compilermodi entsprechend konfigurieren.
Wenn
Sie Anwendungen kompilieren, die mit Java SE
6 erstellt wurden und mit früheren Spezifikationen ausgeführt
werden sollen, geben Sie unbedingt
die Modi -source und -target für den Java SE-6-Compiler an.
Auf diese Weise stellen Sie sicher, dass der generierte Bytecode mit der früheren Version der Java Virtual Machine (JVM) kompatibel ist.
Wenn
beispielsweise die Ziel-JVM die Stufe 1.4.2 hat und Sie Anwendungen mit Java SE 6 kompilieren, sollten Sie
-source 1.4, und target
1.4 angeben, um Bytecode zu generieren, der mit 1.4.2 kompatibel ist.
Auf diese Weise wird jedoch lediglich die Ausgabe des Bytecode behandelt und nicht die Verwendung von Paketen,
Klassen oder Funktionen geklärt, die in Java SE 6 neu sind. Entwickler müssen
bei der Auswahl der APIs aus den J2SE-Paketen besonders sorgfältig sein, wenn die Anwendung auf verschiedenen JVM-Stufen ausgeführt werden soll.
- Fragen der Inkompatibilität mit bereits kompilierten Anwendungen der Java 2 Standard
Edition (J2SE) 1.4 und 5.0.
Java SE 6 ist aufwärts binärkompatibel mit
Java 2 Technology Edition Version 5.0
und Java 2 Technology Edition Version 1.4.2,
mit Ausnahme der Inkompatibilitäten, die von Oracle Corporation auf der folgenden Website dokumentiert sind:
http://java.sun.com/javase/technologies/compatibility.jsp.
- Führen Sie eine Umstellung von den veralteten JVMDI- (Java Virtual Machine Debug Interface) und
JVMPI-Funktionen (Java Virtual Machine Profiler Interface)
auf Java Virtual Machine Tool Interface (JVMTI) durch.
Veraltetes Feature: Die JVMDI- und JVMPI-Funktionen werden in J2SE 5.0 nicht weiter unterstützt. Sie wurden
aus Java SE 6 entfernt.
depfeat
- Beachten Sie die Neuerungen in der Java-Befehlszeilenschnittstelle.
Die Unterschiede zwischen den
Befehlszeilenschnittstellen für die Stufe Java SE 6 und
J2SE 5 sind nicht sehr groß. Es gibt jedoch einige Unterschiede bei den Anbietern der JVMs.
Sie finden sie im Verzeichnis
JAVA_HOME/bin. Nachfolgend sind einige Befehlszeilenoptionen aufgeführt,
die für alle Java SE 6-Implementierungen gelten.
- JVMTI: Verwenden Sie -agentlib, um eine native Agentenbibliothek zu laden, die Sie angeben.
- JVMTI: Verwenden Sie -agentpath, um die native Agentenbibliothek unter Angabe des vollständigen Pfadnamens zu laden.
- JVMTI: Verwenden Sie -javaagent, um den Agenten für Java-Programmiersprachen
(nähere Informationen unter "java.lang.instrument") zu laden.
- Geben Sie apt -help ein, um Informationen zu dieser neuen Befehlszeile, die Annotationsfunktionen unterstützt zu erhalten.
- Geben Sie javac -help ein, um Informationen und Aktualisierungen zu dieser Befehlszeile zu enthalten.
- Aktualisieren Sie ANT-Tasks.
Wenn Sie ANT-Tasks erstellt haben, die auf der ANT-Task "idltojava" basieren,
die mit früheren Versionen dieses Produkts bereitgestellt wurde, stellen Sie sicher, dass
nicht nur für J2SE 1.4 oder 5 sondern auch für Java SE 6 die richtigen Parameter übergeben werden,
um sicherzustellen, dass die Stubs/Ties und Skeletons, die generiert werden, mit den früheren
Produktreleases kompatibel sind.