java中的版本不匹配

时间:2012-06-10 11:44:38

标签: java netbeans version

我正在开发一个基于cloudsim3.0项目的大学项目。我使用jdk 7而cloudsim使用jdk 1.3。所以我必须改变一切:泛型,for-each循环,等等。我从NetBeans收到的一些错误是:

  • -source1.3(使用-source7或更高版本......)
  • 不支持泛型
  • -source1.3不支持交换机中的字符串(使用-source7或更高版本......) ...

如何将jdk版本从1.3更改为7? 感谢

2 个答案:

答案 0 :(得分:1)

通常,您希望在比部署到的Java版本更高的Java版本中进行开发。 NetKans使用的JDK中的java编译器不支持将Java 7源代码编译为1.3字节码,因此需要使用其他编译器。

我花了一些时间来调查这个目标Java 1.4,你可以直接在Eclipse里面使用Eclipse编译器,或者作为ecj(从命令行替换为javac)可以在ant中使用,或者您可以使用Retroweaver,它主动将字节代码转换为早期版本。

您可能会考虑咬住子弹并将Java 1.3用于您的项目,因为如果您的代码因任何原因无效,它会从您需要调查的内容中​​删除所有这些神奇的项目符号。

答案 1 :(得分:1)

您的问题有点困惑,但如果您正在询问如何编译JDK 1.3的Java 7源代码,则最有意义。

答案是你做不到。这些构造(泛型,for-each循环,字符串开关)都需要更现代的目标平台。

理论上,你有两种可能的解决方案:

  • 从代码中删除所有Java 5,6,7-isms并使用-source 1.3 -target 1.3进行编译。 (或者下载并安装旧的Java 1.3 JDK。)

  • 使用Java 7 JVM运行CloudSim3.0代码。它应该有效,除非它取决于已修复的旧错误。