当我运行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 /但无济于事这个的任何解决方案...... 不管怎样,谢谢你的答案..
答案 0 :(得分: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
答案 1 :(得分:0)
卸载已安装的JRE。只保留JAVA_HOME定义的一个JAVA,并定义与JAVA_HOME相关的lib和classpath。