2013-08-10 20 views
6

Potrzebuję skompilować program Java w wierszu poleceń, a ja próbuję ustawić poziom kompilatora na niższy (1.6). Próbowałem tak, ale to nie działa:Ustawia poziom zgodności kompilatora Java

javac -1.6 Hello.java 
+0

I to dokładna komenda co u używasz? Jeśli nie, opublikuj dokładnie te przedmioty, których używasz. –

+0

Nie zapomnij dodać opcji '-bootclasspath', aby upewnić się, że w kodzie nie zastosowano żadnych klas, metod ani atrybutów 1.6. –

+0

To działało w następujący sposób: javac -target 1.6 -source 1.6 Hello.java –

Odpowiedz

6

Zastosowanie -source i -target opcje:

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

Dziękuję bardzo za odpowiedź, zadziałało. –

+0

@georgiana_e. Nie ma za co :) –

7

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


Ta informacja pochodzi z systemem javac -help:

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 mówi (poszukiwanie poprzecznych opcji kompilacji)

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 

Generowanie plików klas, które zwalczają określoną wersję VM. Pliki klas będą działać na określonym celu i w późniejszych wersjach, ale nie we wcześniejszych wersjach maszyny wirtualnej. Prawidłowe cele to 1,1, 1,2, 1,3, 1,4, 1,5 (również 5), 1,6 (również 6) i 1,7 (również 7). Domyślną -target zależy od wartości -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. 

Więc

javac -target 1.6 -source 1.6 yourJavaProgram.java 
0

skorzystać z poniższego polecenia:

javac -target 1.6 -source 1.6 Hello.java