Java编译错误无法配置JAVA_HOME

时间:2012-11-01 06:24:53

标签: java jenkins javac

当我运行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 /但无济于事这个的任何解决方案...... 不管怎样,谢谢你的答案..

2 个答案:

答案 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。