设置Java编译器合规性级别

我需要在命令行上编译Java程序,我试图将编译器级别设置为较低的(1.6)。 我试过这样但是没有用:

javac -1.6 Hello.java 

使用-source-target选项:

 javac -target 1.6 -source 1.6 Hello.java 

使用: javac -source 1.6 -target 1.6 Hello.java


此信息来自运行javac -help

 Usage: javac   where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are used -classpath  Specify where to find user class files and annotation processors -cp  Specify where to find user class files and annotation processors -sourcepath  Specify where to find input source files -bootclasspath  Override location of bootstrap class files -extdirs  Override location of installed extensions -endorseddirs  Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compilation is done. -processor [,,...]Names of the annotation processors to run; bypasses default discovery process -processorpath  Specify where to find annotation processors -d  Specify where to place generated class files -s  Specify where to place generated source files -implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files -encoding  Specify character encoding used by source files -source  Provide source compatibility with specified release -target  Generate class files for specific VM version -version Version information -help Print a synopsis of standard options -Akey[=value] Options to pass to annotation processors -X Print a synopsis of nonstandard options -J Pass  directly to the runtime system 

Java doc说,(搜索交叉编译选项)

By default, classes are compiled against the bootstrap and extension classes of the platform that javac shipped with. But javac also supports cross-compiling, where classes By default, classes are compiled against the bootstrap and extension classes of the platform that javac shipped with. But javac also supports cross-compiling, where classes By default, classes are compiled against the bootstrap and extension classes of the platform that javac shipped with. But javac also supports cross-compiling, where classes platform that javac shipped with. But javac also supports cross-compiling, where classes are compiled against a bootstrap and extension classes of a different Java platform implementation. It is important to use -bootclasspath and -extdirs when cross-compiling; are compiled against a bootstrap and extension classes of a different Java platform implementation. It is important to use -bootclasspath and -extdirs when cross-compiling; implementation. It is important to use -bootclasspath and -extdirs when cross-compiling; see Cross-Compilation Example below.

 -target version 

生成以指定版本的VM为目标的类文件。 类文件将在指定的目标和更高版本上运行,但不会在早期版本的VM上运行。 有效目标是1.1,1.2,1.3,1.4,1.5(也是5),1.6(也是6)和1.7(也是7)。 -target的默认值取决于-source的值:

 If -source is not specified, the value of -target is 1.7 If -source is 1.2, the value of -target is 1.4 If -source is 1.3, the value of -target is 1.4 If -source is 1.5, the value of -target is 1.7 If -source is 1.6, the value of -target is 1.7 For all other values of -source, the value of -target is the value of -source. 

所以,

 javac -target 1.6 -source 1.6 yourJavaProgram.java 

使用以下命令:

 javac -target 1.6 -source 1.6 Hello.java