2013-08-10 12 views
6

Ich muss ein Java-Programm in der Befehlszeile kompilieren, und ich versuche, den Compiler-Level auf einen niedrigeren (1,6) zu setzen. Ich habe versucht, wie dieses, aber es hat nicht funktioniert:Setzen Sie Java Compiler Compliance-Level

javac -1.6 Hello.java 
+0

ich dies die genaue Befehl, was u verwenden? Wenn nicht, bitte posten Sie die genauen Werte, die Sie verwenden. –

+0

Vergessen Sie nicht, die Option -bootclasspath hinzuzufügen, um sicherzustellen, dass keine 1.6 Klassen, Methoden oder Attribute im Code verwendet werden. –

+0

Es funktionierte so: javac-target 1.6 -source 1.6 Hello.java –

Antwort

6

Verwenden -source und -target Optionen:

javac -target 1.6 -source 1.6 Hello.java 
+0

Vielen Dank für Ihre Antwort, es hat funktioniert. –

+0

@georgiana_e. Bitte :) –

7

Verwendung: javac -source 1.6 -target 1.6 Hello.java


Diese Informationen aus javac -help kommt ausgeführt wird:

Usage: javac <options> <source files> 
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 <path>   Specify where to find user class files and annotation processors 
    -cp <path>     Specify where to find user class files and annotation processors 
    -sourcepath <path>   Specify where to find input source files 
    -bootclasspath <path>  Override location of bootstrap class files 
    -extdirs <dirs>   Override location of installed extensions 
    -endorseddirs <dirs>  Override location of endorsed standards path 
    -proc:{none,only}   Control whether annotation processing and/or compilation is done. 
    -processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process 
    -processorpath <path>  Specify where to find annotation processors 
    -d <directory>    Specify where to place generated class files 
    -s <directory>    Specify where to place generated source files 
    -implicit:{none,class}  Specify whether or not to generate class files for implicitly referenced files 
    -encoding <encoding>  Specify character encoding used by source files 
    -source <release>   Provide source compatibility with specified release 
    -target <release>   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<flag>     Pass <flag> directly to the runtime system 
4

Java doc sagt, (Suche nach Quer Kompilierungsoptionen)

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

-target version 

Klassendateien erzeugen, die eine bestimmte Version der VM Ziel. Klassendateien werden auf dem angegebenen Ziel und späteren Versionen ausgeführt, jedoch nicht auf früheren Versionen der VM. Gültige Ziele sind 1.1, 1.2, 1.3, 1.4, 1.5 (auch 5), 1.6 (auch 6) und 1.7 (auch 7). Die Vorgabe für -target hängt vom Wert von -Quelle:

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. 

So

javac -target 1.6 -source 1.6 yourJavaProgram.java 
0

Verwenden Sie den folgenden Befehl ein:

javac -target 1.6 -source 1.6 Hello.java