ant构建无效目标释放的问题

时间:2011-02-10 10:59:37

标签: java ant

中的问题

[javac] Compiling 86 source files to F:\XXX\classes
    [javac] javac: invalid target release: 1.6
    [javac] Usage: javac <options> <source files>
    [javac] where possible options include:
    [javac]   -g                         Generate all debugging info
    [javac]   -g:none                    Generate no debugging info
    [javac]   -g:{lines,vars,source}     Generate only some debugging info
    [javac]   -nowarn                    Generate no warnings
    [javac]   -verbose                   Output messages about what the compiler is doing
    [javac]   -deprecation               Output source locations where deprecated APIs are used
    [javac]   -classpath <path>          Specify where to find user class files
    [javac]   -cp <path>                 Specify where to find user class files
    [javac]   -sourcepath <path>         Specify where to find input source files
    [javac]   -bootclasspath <path>      Override location of bootstrap class files
    [javac]   -extdirs <dirs>            Override location of installed extensions
    [javac]   -endorseddirs <dirs>       Override location of endorsed standards path
    [javac]   -d <directory>             Specify where to place generated class files
    [javac]   -encoding <encoding>       Specify character encoding used by source files
    [javac]   -source <release>          Provide source compatibility with specified release
    [javac]   -target <release>          Generate class files for specific VM version
    [javac]   -version                   Version information
    [javac]   -help                      Print a synopsis of standard options
    [javac]   -X                         Print a synopsis of nonstandard options
    [javac]   -J<flag>                   Pass <flag> directly to the runtime system


BUILD FAILED

ant源和目标为1.6 en jdk 1.6的可变路径

5 个答案:

答案 0 :(得分:27)

您使用的编译器无法使用-target 1.6进行编译(javac:无效的目标版本:1.6)。你确定使用JDK 1.6吗?也许安装并使用了JDK 1.5。检查使用过的Java版本,并在目标(开头)添加以下行:

<echo message="Using Java version ${ant.java.version}."/>

它输出Ant使用的Java版本。

您可以将编译器设置为使用其他Java版本。您必须使用fork-attribute来使用外部javac并指定您想要的那个:

<javac srcdir="${src}"
         destdir="${build}"
         fork="yes"
         executable="/opt/java/jdk1.6/bin/javac"
  />

阅读javac-task的文档了解详情。

答案 1 :(得分:13)

也许需要让蚂蚁生成器匹配你的jre。

Windows->Preferences->Ant->Runtime->Classpath->Global Entries,添加<*your jre home*>/lib/tools.jar并将其移动。

答案 2 :(得分:13)

此外,您可以在Ant视图中右键单击项目,然后选择Run As ...&gt;外部工具配置...在JRE选项卡中,选择正确的运行时JRE。

答案 3 :(得分:0)

是的,这是一个旧的,但是在工作中遇到并且找不到任何地方记录的解决方案......

即使我使用Ant也遇到过这种情况,但事实上它似乎与Ant无关 - 似乎有一些破坏的JDK构建:

C:\>%JAVA_HOME%\bin\javac -version
javac 1.6.0_21
javac: no source files
Usage: javac <options> <source files>
...

C:\>%JAVA_HOME%\bin\javac -target 1.6
javac: invalid target release: 1.6
Usage: javac <options> <source files>
...

另外1.6版本看起来像:

C:\>set JAVA_HOME=C:\Progra~1\Java\jdk1.6.0_45

C:\>%JAVA_HOME%\bin\javac -version
javac 1.6.0_45

C:\>%JAVA_HOME%\bin\javac -target 1.6
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options

所以解决方案是升级JDK。

答案 4 :(得分:0)

右键单击ant build文件;跑步; Ant Build ......; JRE标签;并尝试将单独的JRE设置为您想要的JRE。这对我有用,即使我只安装了一个JRE,Eclipse似乎还记得旧版的鬼魂。