使用不同的源代码和字节码版本编译java源代码

时间:2014-01-26 15:41:47

标签: java compilation

Java编译器(sun的javac)允许用户指定源代码兼容级别(使用-source)以及生成的字节码兼容级别(使用-target)。

如果我要对源和目标使用不同的级别(例如将1.7源代码编译为1.5字节代码,或者反过来),是否会引起关注?

3 个答案:

答案 0 :(得分:0)

  

如果我要对源和目标使用不同的级别(例如将1.7源代码编译为1.5字节代码,或者反过来),是否会引起关注?

是。当然,Java 1.5中不存在为Java 7开发的新API,因此如果您使用这些API,您的应用程序将无法运行

答案 1 :(得分:0)

最常见的问题是Java 7可用的库,而Java 5.0中没有。

因此,您需要使用与目标系统相同的库进行编译,以确保不使用不可用的库。

BTW Sun / Oracle javac编译器仅支持编译1.1到1.0,否则源版本和目标版本必须相同。

答案 2 :(得分:0)

  

将1.7源码编译为1.5字节码...

如果您的意思是尝试使用javac -source 1.7 -target 1.5进行编译,那么我担心这样做无效。启用新的Java 1.7语言功能要求目标为1.7。这是一种常见的模式。添加新语言功能时,通常会增加类文件版本号,并且通常需要编译到相应的目标版本(或更高版本)。

javac -source 1.5 -target 1.7 javac -source 1.5 -target 1.5可行,但在后一种情况下,如果不编译“rt.jar”文件的Java 1.5版本,则可能会收到编译器警告。