Java编译器(sun的javac)允许用户指定源代码兼容级别(使用-source)以及生成的字节码兼容级别(使用-target)。
如果我要对源和目标使用不同的级别(例如将1.7源代码编译为1.5字节代码,或者反过来),是否会引起关注?
答案 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版本,则可能会收到编译器警告。