0

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

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

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

4

2 回答 2

1

通常,您要非常小心地使用比您部署的更高版本的 Java 进行开发。Netbeans 使用的 JDK 中的 java 编译器不支持将 Java 7 源代码编译为 1.3 字节码,因此您需要使用另一个编译器。

我花了一些时间来研究这个针对 Java 1.4 的问题,您可以直接在 Eclipse 中使用 Eclipse 编译器,也可以作为 ecj(这是命令行中的 javac 替换),它可以在 ant 内部使用,或者您可以使用主动将字节码转换为早期版本的 Retroweaver。

您可能会考虑硬着头皮将 Java 1.3 用于您的项目,因为如果您的代码因任何原因不起作用,它会从您需要调查的内容中​​删除所有这些神奇的子弹。

于 2012-06-10T12:15:03.963 回答
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 代码。它应该可以工作,除非它依赖于已修复的旧错误。

于 2012-06-10T12:15:28.523 回答