【问题标题】:Autoconf Force Java compiler version and vendorAutoconf Force Java 编译器版本和供应商
【发布时间】:2012-10-19 16:55:56
【问题描述】:

我正在使用 autoconf 进行构建。我希望我的配置脚本检查是否存在 Java 编译器并确保版本至少为 1.6 并且它是 Oracle 的 Java 编译器。

我需要在 configure.ac 脚本中添加什么?

【问题讨论】:

    标签: java javac autoconf


    【解决方案1】:

    AX_PROG_JAVA 宏及其在GNU Autoconf Macro Archive 处的关联宏将是一个很好的起点。但是,它们不会完全按照您的要求进行(确保它是 Oracle 编译器并且至少是 Java 1.6)。

    【讨论】:

    • 我认为他们在寻找“javac”,但在许多发行版中,javac 是一个符号链接 gcj。所以这在这里行不通。
    • 可以,但是用户可以通过 JAVAC 环境变量指向configure 以使用正确的 javac。
    • 为什么?您需要做的就是让宏设置 JAVAC,在 configure.ac 中调用 $JAVAC -version 并处理其输出(或者如果它完全运行)。
    • 这是我的 Ubuntu 上的问题: $ ls -l which javac /usr/bin/javac -> /etc/alternatives/javac $ ls -l /etc/alternatives/javac /etc/ alternatives/javac -> /usr/bin/gcj-wrapper-4.4 javac 实际上有时指向 Ubuntu 上的 gcj,它不会在配置期间失败,而是在编译失败时失败。我想在配置过程中向用户提供需要 Oracle 的 Java 的消息
    • 这就是为什么我说要在 configure.ac 中调用 $JAVAC -version,这将在 configure 期间运行。如果宏将 JAVAC 设置为 gcj,$JAVAC -version 可能无法运行,因为 gcj 不使用 Oracle 命令行选项。如果 JAVAC 编译器使用 Oracle 兼容的命令行选项,您至少会得到版本信息。
    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多