代码之家  ›  专栏  ›  技术社区  ›  Gray droiddeveloper

如何让maven编译器插件在没有工具故障的情况下工作。jar未找到错误?

  •  0
  • Gray droiddeveloper  · 技术社区  · 8 年前

    我们在一个奇怪的unix ish开发平台下使用maven时遇到了一些问题。maven编译器插件抱怨无法找到 tools.jar 由于默认安装的java中存在奇怪的JDK/JRE混淆。

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:
          2.5.1:compile (default-compile) on project xyz: Fatal error compiling:
          tools.jar not found: our-java-home-dir/../lib/tools.jar -> [Help 1]
    

    这个 ../lib/tools.jar 应该是真的 lib/tools.jar .java安装(java 7)似乎是一个JDK,但不知何故java只是将其检测为一个JRE,因此产生了混淆。在查看java代码所做的工作时,一定认为我们已经安装了JRE,并且期望 JAVA_HOME 指向 jre 实数细分 JAVA\u主页 .我们似乎无法通过复制、符号链接或其他黑客手段获得 ../lib 与…相同 lib

    我们在Intertube上看到了很多类似的问题,但都没有什么帮助。我们无法像您在其他平台上那样重新安装Java或任何解决方案,但它应该是一个完整的JDK,包括 bin 子目录。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Gray droiddeveloper    8 年前

    。。。工具。找不到jar:我们的java主目录//库/工具。jar->[帮助1]

    对我们来说,一个似乎有效的解决方案是 tools.jar 手动将文件导入maven命令的引导类路径。我们使用以下程序转储引导类路径的当前值:

    public class Main {
        public static void main(String[] args) {
            System.out.println("Boot-class-path=" +
                System.getProperty("sun.boot.class.path"));
        }
    }
    

    然后,我们在中修改了mvn脚本的结尾 $M2_HOME/bin/mvn 插入 -Xbootclasspath 选项:

    $MAVEN_OPTS \
        -Xbootclasspath:existing-boot-class-path-here:${JAVA_HOME}/lib/tools.jar \
        -additional-maven-options-go-here...
    

    我们添加了 工具。罐子 输入到上述主程序输出的值的末尾。当然,还有其他maven选项需要保留。

    希望这对其他人有帮助。

    推荐文章