问题描述
我具有从以下命令获取Java路径的脚本:readlink -f $(which java)
。
但是它显示了错误的路径: / usr / local / bin / javavm
我需要使用以下路径: / usr / local / openjdk8 / bin / java
我试图给出导出命令: export JAVA_HOME = / usr / local / openjdk8 / ,但是问题仍然存在。
我也尝试过此帖子:https://stackoverflow.com/a/39691105/10220825
这篇文章:https://askubuntu.com/a/554052/905016
我也尝试过: sudo ln -s / usr / local / bin / javavm / usr / local / openjdk8 / bin / java
但结果是ln: /usr/local/openjdk8/bin/java: File exists
和问题仍然相同。
我不想对其进行硬编码,我也不想使用其他命令,例如which java
或echo $JAVA_HOME
,因为该脚本在Linux中获得了预期的结果,但仅是FreeBSD机器的问题。
我也不想从awk
的输出中应用任何类似sed
或readlink -f $(which java)
的解析。
有人可以建议我如何更改readlink -f $(which java)
中的值。
解决方法
您看到的是documented behaviour on FreeBSD。
如果要选择特定的Java版本,请设置JAVA_VERSION
环境变量,例如:
JAVA_VERSION=8+ javac MyClass.java
如果要查找正在运行的版本,请设置JAVAVM_DRYRUN=yes
:
JAVAVM_DRYRUN=yes java
JAVAVM_DRYRUN=yes JAVA_VERSION=11 java