0

当我运行 Jenkins 时,它会从存储库中检出代码并执行mvn package或执行某些命令。我收到此错误:

无法在以下位置找到 Javac 编译器:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/tools.jar 请确保您使用的是 JDK 1.4 或更高版本,而不是一个 JRE(需要 com.sun.tools.javac.Main 类)。在大多数情况下,您可以通过设置 JAVA_HOME 环境变量来更改 Java 安装的位置。

My JAVA_HOME points at jdk location only.Still it looks at  

/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/tools.jar 用于编译器。为什么会这样???

似乎问题出在代码上..它指向tools.jar的/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/,而它需要查看 jar 所在的 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/。我尝试将 jar 复制到 jre /lib/,但无济于事。任何解决方案为此...无论如何都感谢您的回答..

4

2 回答 2

2

您需要 jdk(java 开发工具包)来编译 java 程序。jre 仅用于运行已编译的 java 程序。在你的情况下,它指向一个 jre,这就是你得到这个的原因。你可以下载jdk并安装。

你可以从这里下载 jdk rpm

http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html

如果您已经安装,请使用它来选择 java 替代方案。

  /usr/sbin/alternatives --config java
于 2012-11-01T06:30:00.713 回答
0

卸载已安装的 JRE。只保留一个由 JAVA_HOME 定义的 JAVA,并针对 JAVA_HOME 定义您的 lib 和类路径。

于 2012-11-01T07:02:24.103 回答