【问题标题】:Compiling D2RQ with ant用 ant 编译 D2RQ
【发布时间】:2017-05-25 09:12:18
【问题描述】:

D2RQ 附带了一个 ant 构建脚本,可以正常工作。我可以在linux机器上编译,默认ant版本是1.8.2,javac版本是1.7.0_121。

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

然后我遇到了一些问题:

  • 当我在不更改源(或目标)选项的情况下运行 ant 1.10 时,ant 似乎运行成功——即使系统上的默认 java 版本是 1.7(即

  • 我尝试从

    修改 build.xml 文件中的compile 目标
    source="1.5"
    target="1.5"
    

    source="1.8"
    target="1.8"
    

    但我收到以下错误:

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

    如果我将 '1.8' 替换为 '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 标志。

还有什么我应该尝试的吗?!

【问题讨论】:

    标签: java ant d2rq


    【解决方案1】:

    <javac>executable 属性必须指向javac 可执行文件,而不是java。请注意javac 末尾的"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 发行版。

    【讨论】:

    • 谢谢!我知道这会很简单! (你能说 Java 不是我最喜欢的语言吗...)
    • 虽然,它仍然没有回答我为什么 target="1.8" 不起作用,或者为什么 ant 1.10 没有抱怨在 Java 1.5 下运行的问题
    • target="1.8" 如果正在使用 1.7 或更早版本的 javac 可执行文件,则将无法工作。
    • Ant 1.10 根本无法在 Java 1.5 下运行。它会失败并显示类似Unsupported major.minor version 52.0 的错误消息。如果没有发生该错误,则表示正在运行旧版本的 Ant。
    • 啊,我没有意识到运行./ant 仍然运行系统版本的ant,因为它依赖于ANT_HOME
    【解决方案2】:

    还有ONT-D2RQ 用java8、jena3和maven

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 2014-04-05
      • 2012-05-02
      • 2013-07-03
      • 1970-01-01
      相关资源
      最近更新 更多