<p>jenv:未安装版本“oracle64-1.8.0-ea”</p>

创建于 2015-06-11  ·  3评论  ·  资料来源: jenv/jenv

在过去的几个月里,我一直遇到这个问题,尽管我完全按照说明将 jenv 的副本克隆到~/.jenv ,删除并从头开始重新创建链接。 每当我运行任何与 Java 相关的脚本时,我都会看到:

$ jgem 安装 jbundle
jenv:未安装版本“oracle64-1.8.0-ea”

不仅包含在jruby工具中,还包含在其他工具中,例如sbt 。 运行普通的java是可以的。

$ which -a java
/usr/local/opt/jenv/shims/java
/usr/bin/java
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

自制版本

然后我删除~/.jenv目录,并使用Homebrew将 jenv 安装到/usr/local/Cellar/jenv/0.4.3/bin/jenv ,后者又被符号链接到/usr/local/bin/jenv

这是在我的~/.profile

if which jenv > /dev/null; then eval "$(jenv init -)"; fi
export JENV_ROOT=/usr/local/opt/jenv

然后我将 3 个不同版本的 JDK 添加到 jenv

$ ls -l /usr/local/opt/jenv/versions
total 72
lrwxr-xr-x  1 hanxue  admin  68 Jun 11 12:29 1.6 -> /Library/Java/JavaVirtualMachines/1.6.0_51-b11-457.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  68 Jun 11 12:29 1.6.0.51 -> /Library/Java/JavaVirtualMachines/1.6.0_51-b11-457.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  63 Jun 11 12:28 1.7 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  63 Jun 11 12:28 1.7.0.40 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  63 Jun 11 12:28 1.8 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  63 Jun 11 12:28 1.8.0.45 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  68 Jun 11 12:29 oracle64-1.6.0.51 -> /Library/Java/JavaVirtualMachines/1.6.0_51-b11-457.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  63 Jun 11 12:28 oracle64-1.7.0.40 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
lrwxr-xr-x  1 hanxue  admin  63 Jun 11 12:28 oracle64-1.8.0.45 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

可以肯定的是,我检查/Library/Java/JavaVirtualMachines以确保不再有 1.8.0-ea

$ ls /Library/Java/JavaVirtualMachines
1.6.0_51-b11-456.jdk    jdk1.7.0_40.jdk     jdk1.8.0_45.jdk
1.6.0_51-b11-457.jdk    jdk1.8.0_31.jdk

但是我仍然提示jenv: version oracle64-1.8.0-ea' is not installed`

我查看了 jenv 脚本,没有看到对其他隐藏目录的任何引用。 有没有jenv可能会从中提取oracle64-1.8.0-ea地方?

解决方法

对于任何面临同样问题的人,我总是在命令前加上jenv exec 。 例如:

$ jenv exec appcfg.rb generate_app notifier

最有用的评论

我知道这是过去的方式,但是当您执行jenv local <ver> ,它会在您正在运行的目录中放置一个 .java-version 文件。 这样您就可以始终使用正确的 Java 版本在该目录中运行。 如果您看到这个,请确保该文件不存在。

所有3条评论

你能提供我的输出吗

杰夫医生
jenv 版本

我知道这是过去的方式,但是当您执行jenv local <ver> ,它会在您正在运行的目录中放置一个 .java-version 文件。 这样您就可以始终使用正确的 Java 版本在该目录中运行。 如果您看到这个,请确保该文件不存在。

我认为该消息仅表示所指示的版本是最后一个设置为全局或本地的版本。 因此,要清除它,您只需删除~/.jenv/version处的文件即可。 jenv 将在您下次设置版本时重新创建它(例如) jenv global <version>

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

erstens picture erstens  ·  5评论

juanmbellini picture juanmbellini  ·  4评论

wnck picture wnck  ·  3评论

mcandre picture mcandre  ·  4评论

mojavelinux picture mojavelinux  ·  4评论