2017-01-10 84 views
0

D2RQ附带一个ant构建脚本,它工作正常。我可以在Linux机器上编译,其中默认ant版本是1.8.2,javac版本是1.7.0_121。用蚂蚁编译D2RQ

我想用Java 8编译D2RQ。我已经下载了ant 1.10,它需要Java 8 2

然后,我遇到了一些问题:

  • 当我运行蚂蚁1.10不改变源(或目标)选项,蚂蚁似乎已成功运行 - 尽管Java的系统上的默认版本1.7(即< 8) - 我会期望它抱怨它没有一个有效的Java版本?

  • 我试着从

    source="1.5" 
    target="1.5" 
    

    修改build.xml文件中compile目标

    source="1.8" 
    target="1.8" 
    

    ,但我得到的错误:

    compile: 
        [javac] Compiling 171 source files to /home/chris/d2rq/bldsrc 
        [javac] javac: invalid target release: 1.8 
    

    我如果我用'8'代替'1.8',但是'1.6'和'1.7'都可以工作,那么得到相同的错误。

  • 然后我尝试了不同的方法(多一点谷歌搜索后),更换

    source="1.5" 
    target="1.5" 
    

    fork="yes" 
    executable="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64/jre/bin/java" 
    

    的Java 8的位置是有效的,但在运行编译现在的任务结果在

    compile: 
        [javac] Compiling 171 source files to /home/chris/d2rq/bldsrc 
        [javac] Unrecognized option: -d 
        [javac] Error: Could not create the Java Virtual Machine. 
        [javac] Error: A fatal exception has occurred. Program will exit. 
    

我甚至不知道-d是D2RQ编译选项还是有效的java标志。

还有什么我应该尝试?!

回答

1

<javac>executable属性必须指向javac可执行文件,而不是java。请注意0​​末尾的"c"

下列情况必须更改为指向javac

executable="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64/jre/bin/java" 

javac生命取决于你的Linux发行版。

+0

谢谢!我知道这会很简单! (你能告诉Java不是我喜欢的语言......) – ChrisW

+0

虽然它仍然不回答我为什么'target =“1.8”'不起作用的问题,或者为什么蚂蚁1.10不会抱怨被在Java 1.5 – ChrisW

+0

下运行时,如果正在使用'javac'可执行文件版本1.7或更早的版本''target =“1.8”'将不起作用。 –