2010-04-02 10 views
6

Welche Schritte sind bei der Migration von Code von JDK 1.5 auf 1.6 zu beachten?Code-Migration von JDK 1.5 nach 1.6

Schritte folgen:

  1. den Build-Patch von Projekt als JDK1.6 Changed
  2. Reinigen Sie den Compiler als 6
  3. geändert und das Projekt bereitstellen
  4. Ich war Compilation Fehler immer als
 
     *** ERROR ***: Thu Apr 01 05:17:06 PDT 2010 org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml 
    Stack trace of nested exception: 
    java.lang.ClassCastException: org.eclipse.jst.javaee.web.internal.impl.WebAppDeploymentDescriptorImpl cannot be cast to org.eclipse.jst.j2ee.webapplication.WebApp 
     at org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl.loadDeploymentDescriptor(War22ImportStrategyImpl.java:87) 
     at org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl.importMetaData(War22ImportStrategyImpl.java:81) 
     at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getDeploymentDescriptor(WARFileImpl.java:145) 



*** ERROR ***: Thu Apr 01 05:17:06 PDT 2010 org.eclipse.wst.validation.internal.core.ValidationException: CHKJ3000E: WAR Validation Failed: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml 
     at org.eclipse.jst.j2ee.model.internal.validation.WarValidator.validateInJob(WarValidator.java:343) 
     at org.eclipse.jst.j2ee.internal.web.validation.UIWarValidator.validateInJob(UIWarValidator.java:111) 
     at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:75) 
     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) 
+2

Dies scheint ein Fehler in einem Eclipse-Modul zu sein, das Sie verwenden. Ich schlage vor, Sie bitten ein Forum, das dieses Produkt spezifisch unterstützt. Dies ist keine allgemeine Java-Frage, Sie sollten nicht erwarten, etwas tun zu müssen, um Ihren Code zu migrieren. –

+0

Ich bekomme die gleiche Nachricht nach dem Importieren eines Projekts in eine neue Instanz von Eclipse (also keine Versionsänderungen, etc.). Etwas Googeln deutet darauf hin, dass die Reinigung des Projekts oft funktioniert (nicht für mich). Ich denke, dass Sie mit dem Modul-spezifischen Problem nicht mithalten können, aber ich denke, Sie sind wahrscheinlich in der richtigen Situation, weil es etwas damit zu tun hat, wie Eclipse den Kontext lädt. Wohlgemerkt, in meinem speziellen Fall habe ich noch nicht herausgefunden, wie ich es beheben kann. – rhuffstedtler

Antwort

0

Laden Sie JDK 6 herunter und installieren Sie es. Aktualisieren Sie alle Umgebungsvariablen wie JAVA_HOME, JDK_HOME. Stellen Sie sicher, dass Ihre IDE auf die neue Bibliothek verweist (die meisten IDEs tun dies automatisch, wenn sie nach der Aktualisierung der Umgebungsvariablen neu gestartet werden). Aktualisieren Sie die Projekteinstellungen, um JDK 6 in Ihrer IDE für jedes Projekt zu verwenden.

1

Mit neuem JDK neu kompilieren, Warnungen prüfen (möglicherweise sind einige der Klassen oder Methoden veraltet), prüfen, ob die Anwendung wie erwartet funktioniert.

15

In den allermeisten Fällen müssen Sie überhaupt nichts tun. Selbst das erneute Kompilieren ist nicht unbedingt notwendig.

Die wenigen Inkompatibilitäten, die zwischen Java 5.0 und 6.0 bestehen, sind in der JDK 6 Adoption Guide dokumentiert.

+0

+1: Zum Erwähnen des Adoptionsleitfadens – Everyone

0

Das hängt von Ihrer Anwendung ab Ich nehme an, hier sind die Liste der neuen Funktionen zu 1.6 alle Ihre Code sollte aber gut funktionieren.

Link java 1.6 features

2

Der Code, der 1.5 auf Java lief wird ohne Änderungen auf 1.6 laufen (in Sie alle internen APIs nicht verwendet wurden, das ist). Die öffentliche Java API ist immer vorwärtskompatibel.

0

Ich habe folgende und es funktioniert gut

Changed the build Patch of Project as JDK1.6 
Changed the Compiler as 6 
0

ich einen ähnlichen Fehler durch Ersetzen behoben:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 

mit:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 

Als ich das tat diese Ersetzung im internet. xml, dieser CHKJ3000E ist weg.

Verwandte Themen