【问题标题】:Set Java compiler compliance level设置 Java 编译器合规级别
【发布时间】:2013-08-10 13:49:32
【问题描述】:

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

javac -1.6 Hello.java

【问题讨论】:

  • 这是你使用的确切命令吗?如果没有,请发布您正在使用的确切 caommnds。
  • 别忘了添加-bootclasspath选项,确保代码中没有使用1.6的类、方法或属性。
  • 它是这样工作的:javac -target 1.6 -source 1.6 Hello.java
  • 如果我添加 -bootclasspath,其中应该 bootclasspath 指示。我添加了java安装目录,我得到了错误“致命错误:无法在类路径或引导类路径中找到包java.lang”。

标签: java javac compiler-flags


【解决方案1】:

使用-source 和-target 选项:

javac -target 1.6 -source 1.6 Hello.java

【讨论】:

    【解决方案2】:

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


    此信息来自运行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
    

    【讨论】:

      【解决方案3】:

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

      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
      

      生成以指定 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
      

      【讨论】:

        【解决方案4】:

        使用以下命令:

        javac -target 1.6 -source 1.6 Hello.java
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-05
          • 2014-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-24
          相关资源
          最近更新 更多