linux - 获取 JAVA_HOME 的两个值

标签 linux environment-variables java

我遇到了这个奇怪的事情。我的 JAVA_HOME 设置为/usr/lib/jvm/java-6-openjdk-amd64。当我回显变量时,我得到相同的结果。但是当我使用 ant 构建项目时,我收到此错误。

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-6-openjdk-amd64/jre"

这怎么可能?我安装了从oracle网站下载的jdk 6,但后来我重命名了它。 剧本很长。所以我给出了pastebin链接:http://pastebin.com/mgJ1VbZ8

最佳答案

从脚本中我看到您正在检查 JAVA_HOME/lib/tools.jar 是否存在,并基于此假设您正在运行 JDK 而不是 JRE。但似乎发生的情况是,您的 JDK bin 文件夹不在 PATH 上,而 JRE bin 文件夹位于 PATH 上。未找到 Javac。执行 ant build.xml 时,请确保 JDK/bin 文件夹位于 PATH 中。最简单的测试方法是查看“javac”是否是有效命令。

关于linux - 获取 JAVA_HOME 的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128729/

相关文章:

linux - 为什么所有环境变量都加载到进程的堆栈中?

java - Android SDK 管理器运行失败

c - 如何防止特定动态库被加载

c - Linux:在共享内存中实现链表

linux - 任何人都可以帮我为以下场景编写脚本吗

security - 我应该如何将敏感的环境变量传递给 Amazon ECS 任务?

java - SSL 连接中的 IllegalStateException,执行 SAML 登录?

java - 读取pdf电子书的内容并相应地分割pdf文件

java - 在 Java 中转换十六进制,错误值为负值

linux - 为什么在与 UNIX/Linux 环境交互时使用 UTF-8 编码?