当我运行 Jenkins 时,它会从存储库中 check out 代码并执行 mvn package 或某些命令。我收到此错误:
Unable to locate the Javac Compiler in: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required). In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable.
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 对于编译器。这是为什么???
问题似乎出在代码上..它指向/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/的tools.jar,而它需要查看 jar 所在的/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/。我尝试将 jar 复制到 jre/lib/但无济于事.任何解决方案... 不管怎样,谢谢你的回答..
最佳答案
你需要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
关于Java编译错误无法配置JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13172014/