2010-04-02 288 views
6

将代码从JDK 1.5迁移到1.6需要执行的步骤是什么?将代码从JDK 1.5迁移到1.6

步骤如下:

  1. 更改项目的构建补丁作为JDK1.6
  2. 改变了编译器为6
  3. 清洁和部署项目
  4. 我正在编译错误为
 
     *** 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

这似乎是您正在使用的eclipse模块中的错误。我建议你问一个具体支持这个产品的论坛。这不是一个普通的Java问题,你不应该指望必须做任何事情来迁移你的代码。 – 2010-04-02 08:32:00

+0

将项目导入Eclipse的新实例后,我收到了相同的消息(因此没有更改版本等)。一些谷歌搜索表明,清理项目往往有效(不适合我)。我认为你已经脱离了它作为一个模块特定问题的轨道,但我认为你可能处于正确的位置,它与Eclipse如何加载上下文有关。请注意,在我的情况下,我还没有真正想出如何修复它。 – rhuffstedtler 2012-10-30 16:49:47

回答

0

下载并安装JDK 6。更新任何环境变量,如JAVA_HOME,JDK_HOME。确保你的IDE指向新的库(如果环境变量更新后重新启动,大多数IDE将自动执行)。更新项目设置以分别在IDE中为每个项目使用JDK 6。

1

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

15

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

Java 5.0和6.0之间存在的一些不兼容性记录在JDK 6 Adoption Guide中。

+0

+1:提及采用指南 – Everyone 2010-04-02 08:00:17

0

这取决于您的应用程序我想这里是所有代码1.6的新功能列表,但应该工作正常。

链接java 1.6 features

2

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

0

我没下,它工作正常

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

我通过更换固定类似的错误:

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

当我做这个替代的网站。 xml,这CHKJ3000E已经消失。