我正在尝试构建应用程序的一些二进制文件。当我想要构建时,我得到了这个:
BUILD FAILED
/home/.../ant-build.xml:84: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-8-openjdk-amd64/jre"
应用程序需要java 7,我已经安装了它,但是我已经安装了它。只需要java7中的tools.jar,因此经过几次尝试后我卸载了java 8.但是,当我我正在尝试再次制作,我得到了同样的错误,即使我根本没有安装java8!
我正确地设置了JAVA_HOME:
$ echo $JAVA_HOME
/usr/lib/jvm/java-7-openjdk-amd64/
我怀疑我是否需要这条道路,但我也将其设置为以防万一:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-7-openjdk-amd64/bin
我在这里没有想法:P任何帮助都会受到赞赏。
也可能是重要的东西,我不得不手动添加repo来获取java-7,否则它无法找到包。那是我得到双jdk-s。
答案 0 :(得分:0)
我猜你是从Jenkins / Bamboo / Teamcity等任何其他源/工具调用JAVAC命令。确保已设置该工具的环境变量。通常它位于管理工具选项中。
我在使用Jenkins时遇到了同样的问题。如果你没有在工具中设置一个环境变量,你可以从中调用它 “/ usr / lib / jvm / java-8-openjdk-amd64 / jre”所以去设置你工具的env变量JAVA_HOME。附上詹金斯问题的屏幕截图。转到管理Jenkins - >配置系统 - >环境变量并设置java_home路径。 干杯
答案 1 :(得分:0)
我刚遇到同样的情况。
这是因为在JAVA_HOME
环境中未正确设置sudo
。
我在export JAVA_HOME=/path/to
中添加了/root/.bashrc
,最终它被正确构建了。
答案 2 :(得分:0)
似乎您正在使用Java8的javac
和JAVA_HOME
或CLASS_PATH
指向Java7。
您可以使用which java
进行检查。
export JAVA_HOME=/lib/jvm/java-7-openjdk-amd64
export export ${PATH}=${JAVA_HOME}:/bin:${PATH}`