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
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
Zastosowanie -source
i -target
opcje:
javac -target 1.6 -source 1.6 Hello.java
Dziękuję bardzo za odpowiedź, zadziałało. –
@georgiana_e. Nie ma za co :) –
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
Java doc mówi (poszukiwanie poprzecznych opcji kompilacji)
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
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;
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
skorzystać z poniższego polecenia:
javac -target 1.6 -source 1.6 Hello.java
I to dokładna komenda co u używasz? Jeśli nie, opublikuj dokładnie te przedmioty, których używasz. –
Nie zapomnij dodać opcji '-bootclasspath', aby upewnić się, że w kodzie nie zastosowano żadnych klas, metod ani atrybutów 1.6. –
To działało w następujący sposób: javac -target 1.6 -source 1.6 Hello.java –