Java 从JDK1.5到1.6的代码迁移

Java 从JDK1.5到1.6的代码迁移,java,eclipse,Java,Eclipse,将代码从JDK1.5迁移到1.6需要遵循哪些步骤 以下步骤: 将Project的构建修补程序更改为JDK1.6 将编译器更改为6 清理并部署项目 我得到编译错误,因为 ***错误***:Thu Apr 01 05:17:06 PDT 2010 org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException:WEB-INF/WEB.xml 嵌套异常的堆栈跟踪: java.lang

将代码从JDK1.5迁移到1.6需要遵循哪些步骤

以下步骤:

  • 将Project的构建修补程序更改为JDK1.6
  • 将编译器更改为6
  • 清理并部署项目
  • 我得到编译错误,因为
  • ***错误***:Thu Apr 01 05:17:06 PDT 2010 org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException:WEB-INF/WEB.xml 嵌套异常的堆栈跟踪: java.lang.ClassCastException:org.eclipse.jst.javaee.web.internal.impl.WebAppDeploymentDescriptorImpl不能强制转换为org.eclipse.jst.j2ee.webapplication.WebApp 位于org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl.loadDeploymentDescriptor(War22ImportStrategyImpl.java:87) 位于org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl.importMetaData(War22ImportStrategyImpl.java:81) 位于org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getDeploymentDescriptor(WARFileImpl.java:145) ***错误***:Thu Apr 01 05:17:06 PDT 2010 org.eclipse.wst.validation.internal.core.ValidationException:CHKJ3000E:WAR验证失败:org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException:WEB-INF/WEB.xml 位于org.eclipse.jst.j2ee.model.internal.validation.WarValidator.validateInJob(WarValidator.java:343) 位于org.eclipse.jst.j2ee.internal.web.validation.UIWarValidator.validateInJob(UIWarValidator.java:111) 位于org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:75) 位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
    下载并安装JDK 6。更新任何环境变量,如JAVA_HOME、JDK_HOME。确保您的IDE指向新库(如果在环境变量更新后重新启动,大多数IDE将自动执行此操作)。更新项目设置,分别在IDE中为每个项目使用JDK 6。

    使用新的JDK重新编译,检查警告(可能有些类或方法已弃用),检查应用程序是否按预期工作。

    在绝大多数情况下,您根本不需要做任何事情。即使重新编译也不是绝对必要的


    Java 5.0和6.0之间存在的一些不兼容在。

    中有记录,这取决于您的应用程序。我想这里是1.6的新特性列表,但是您的所有代码都应该可以正常工作


    link

    在Java 1.5上运行的代码将在1.6上运行,无需任何修改(在您没有使用任何内部API的情况下)。公共Java api始终是向前兼容的。

    我做了以下工作,它工作正常

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

    我通过替换以下内容修复了类似错误:

    <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">
    
    
    
    与:

    
    

    当我在web.xml上进行替换时,这个CHKJ3000E已经消失了。

    这似乎是您正在使用的eclipse模块中的一个错误。我建议你找一个专门支持这个产品的论坛。这不是一个一般的Java问题,您不应该期望必须做任何事情来迁移代码。一些谷歌搜索表明,清理项目通常是有效的(对我来说不是)。我认为这是一个特定于模块的问题,您已经偏离了正轨,但我认为您可能在正确的范围内,它与Eclipse如何加载上下文有关。请注意,在我的特殊情况下,我还没有真正想出如何修复它。
    <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">
    
    <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">