是否可以使用JDK 1.6构建java代码以在JRE 1.5上运行?
在使用JDK 1.6编译时,是否可以选择构建在JRE 1.5上运行的Java代码?
PS:我是Java新手。
如果用1.6编译代码,那么它将不会在1.5上运行。 如果你希望它在1.5中运行,那么你可以用1.5编译代码,它可以在两者上运行。
尝试使用1.5编译,如果有错误,请发布它们。 如果您在代码中使用特定的1.6增强function,则无法在1.5上编译的唯一方法。
回答真正的问题。
javac -target 1.5
有关详细信息,请参见此处
是的你可以。 请参阅http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html并查找“交叉编译选项”部分。 简而言之,您需要为javac指定-target = 1.5。 当然,Ant也支持这个标志。
看看javac“-source”和“-target”选项:
http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html
– 资源发布
指定接受的源代码的版本。 允许以下释放值:
- 1.3编译器不支持在JDK 1.3之后引入的断言,generics或其他语言function。
- 1.4编译器接受包含断言的代码,这些代码在JDK 1.4中引入。
- 1.5编译器接受包含JDK 5中引入的generics和其他语言特性的代码。
- 5 1.5的同义词。
- 1.6这是默认值。 Java SE 6中未引入任何语言更改。但是,源文件中的编码错误现在报告为错误,而不是之前的警告。
- 6 1.6的同义词。
+
– 目标版本
生成以指定版本的VM为目标的类文件。 类文件将在指定的目标和更高版本上运行,但不会在早期版本的VM上运行。 有效目标是1.1 1.2 1.3 1.4 1.5(也是5)和1.6(也是6)。
-target的默认值取决于-source的值: – 如果未指定-source,则-target的值为1.6
- 如果-source为1.2,则-target的值为1.4
- 如果-source为1.3,则-target的值为1.4
- 对于-source的所有其他值,-target的值是-source的值。
这完全取决于您使用的API。 Swing,Instrumentation,JConsole等等随着时间的推移而发生变化。
如果你试试:
http://www.coderanch.com/t/382318/Java-General/java/New-Features-Java
它有指向每个最后主要版本之间差异的页面的链接,其中:
http://java.sun.com/javase/6/webnotes/features.html
是最新版本中已更改/新function的列表。
希望这会给你一些想法。
当然,然后你需要在1.5下编译它以使它与该JRE一起运行。