问题标签 [jenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3896 浏览

java - jenv 不接系统安装java

我已经安装了 jenv。的输出which java最初是/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java. 我发出以下命令:

现在,输出which java

java -version之前和之后的输出是一样的。但是,mvn clean install正在抛出错误:

为什么 maven 没有选择正确的 java?

0 投票
0 回答
67 浏览

java - 如何编译模块具有不同 Java 版本的多模块 Maven 项目?可能使用Jenv?

假设我有一个多模块 Maven 项目,有两个模块:

  • foo; 需要 Java 1.8 才能编译
  • bar; 需要 Java 11 才能编译

我希望能够通过mvn clean install从父目录运行来构建这些,并让它们使用适当的 Java 版本进行编译。

让我们明确一点:将两者都升级到 Java 11 是不可能的。为什么:

  • 我想将应用程序升级bar到 Java 11 以获得 Java 语言的最新功能和改进。 bar是一个独立的 Spring Boot 应用程序,我能够做到这一点。
  • Applicationfoo是一个 JBoss 部署模块插件。它已插入目前在 Java 8 上的第三方应用程序。我无法将在 Java 11 中编译的模块放入在 Java 8 中运行的应用程序中。

我看到有一种方法可以使用本文所述的maven-toolchains-plugin来执行操作。那可以工作。但是我jenv用来管理版本,并且可以为每个目录设置 Java 版本(使用jenv local)。我想知道是否有办法使用 Jenv 来代替工具链插件。它几乎可以满足我的一切需求;我只需要弄清楚如何让 Maven 从目录中的 jenv 配置文件中读取 Java 版本。

0 投票
1 回答
828 浏览

java - 最新版本 Java 的 Maven 插件兼容性错误

所以最近我得到了一个需要编译的 maven 项目,但似乎与 wr04j 和我在 Mac 上安装的最新版本的 Java 存在一些兼容性问题。

经过进一步研究,我发现了一个类似于 node.js 的 Java 版本管理器nvm。我按照我能找到的所有步骤下载了 Java 的早期版本,希望能找到一个可以工作的版本。出现了一个问题,即 caskroom 和 homebrew 似乎无法托管早于 Java11 的 Java 版本。

有什么我想念的吗?我在命令行中运行这些行

brew tap caskroom/versions

brew search java

执行此操作后显示的唯一版本是

所有说明都列出了可用的版本 6-11。也许他们被删除了?也许我做错了什么?任何方向将不胜感激。

0 投票
1 回答
3862 浏览

homebrew - 如何使用 Homebrew 升级 AdoptOpenJDK8 和 Java11

我已经搜索了一点,但我有点困惑。

我已经通过自制软件安装了 Java8 和 Java11。Java8 是用adoptopenjdk/openjdktap 安装的,Java11 是从homebrew/casktap 安装的。当我看到 AdoptOpenJDK 的版本时,我看到了这个版本:

openjdk version "1.8.0_212" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b03) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b03, mixed mode)但在 Oracle 上,我看到内部版本号是 33,而且我有b03. 如何用自制软件更新版本?

当我通过使用并在终端上获取版本切换到 Java11 时,Jenv我得到: openjdk version "11.0.2" 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

在oracle上我看到版本是11.0.3,如何更新这个?还是我不能通过自制软件做到这一点?还是有其他更好的解决方案来安装java并在版本之间切换?

感谢所有答案!

0 投票
3 回答
2825 浏览

java - 无法使用 Jenv 在 Mac OS 中更改 JDK

我使用的是 Amazon corretto JDK,之前我的 Mac OS 中只安装了 1.8,昨天我使用 Mac OS 包安装程序安装了 Amazon corretto JDK 11,之后它将我的默认 java 版本更改为 11。

我在 Jenv 上关注了高度评价的中等博客来管理 Mac OS 上的多个版本,但我的默认 java 版本仍然没有切换回 1.8,并且在关注 stackoverflow 答案或中等帖子时没有收到任何错误。

使用 Jenv 的命令

jenv 版本

的输出java -version

java --version openjdk 11.0.7 2020-04-14 LTS OpenJDK Runtime Environment Corretto-11.0.7.10.1 (build 11.0.7+10-LTS) OpenJDK 64-Bit Server VM Corretto-11.0.7.10.1 (build 11.0 .7+10-LTS,混合模式)

注意:我有多个使用不同 JDK 版本的应用程序,我不想使用别名方式来管理 JDK 版本,我对 Jenv 感兴趣,我可以在其中设置我的 JDK 版本全局(在我的情况下为 1.8)和本地(基于 JDK 特定应用程序使用)。

0 投票
1 回答
2180 浏览

command-line - .zshrc:找不到命令:jenv

我最近按照步骤安装了 jENV 和 Corretto-8。不幸的是,现在每当我打开一个新终端时,我都会看到以下内容:

有谁知道如何解决这一问题?我真的很茫然。

0 投票
0 回答
247 浏览

java - 当使用 jenv 设置“系统”版本时,Maven 的 JAVA_HOME 存在问题

我在 MacOS,zsh 上。

我已经安装了 jenv,添加了几个 java 版本。

我跑过

jenv 医生返回:

[OK] JAVA_HOME 变量可能由 jenv PROMPT 设置
[OK] 路径中的 Java 二进制文件是 jenv shims
[OK] Jenv 已正确加载

jenv 版本返回:

但是当我开始一个终端会话并运行 mvn --version 我得到

如果我使用 jenv 设置非系统 java 版本,它可以正常工作,例如:

但是jenv版本是system怎么就不行呢?

0 投票
1 回答
312 浏览

jenv - /Users/username/.jenv/jenv.version:权限被拒绝

macOS Catalina,使用自制软件安装 jenv 0.5.4,使用 zsh,遵循https://www.jenv.be/中列出的所有步骤

在终端我有以下错误

下面是来自 jenv-refresh-plugins 的代码

任何帮助,非常感谢。

0 投票
2 回答
585 浏览

java - 将 Intellij SDK 指向 jenv 定义的 java home

我正在使用 jenv 来设置 java 主页。当我这样做时,它工作正常并指向正确的 JAVA_HOME echo $JAVA_HOME

我的问题是我们如何设置 Intellij 以获取 JAVA_HOME 指向的 SDK,而无需通过项目 SDK 路由。

输出:

我觉得最接近的相关答案来自这里https://stackoverflow.com/a/33559424

但是我认为我不应该设置 java_home,因为它已经由 jenv 设置。

0 投票
0 回答
590 浏览

java - 通过 jenv 设置 JAVA_HOME 以在 IntelliJ 中使用的无尽麻烦

我有一个看似常见的问题,但是在浏览了许多遇到无法正确设置 JAVA_HOME 路径问题的人的帖子(这里和其他地方)之后,没有提出的解决方案可以解决我的问题。

我最近通过Homebrew(版本为Java16)安装了 Java,但我需要安装Java8以用于特定IntelliJ项目。我也通过 Homewbrew 安装了 Java8,并继续安装jenv以管理我系统上现在多个版本的 Java。

IntelliJ > Project Structure中,我能够指定所需的 SDK 并在 Java8 中工作——直到这里一切都很好。

但是,我随后需要安装Java14,这一切都崩溃了。

我遵循了与添加 Java8 时相同的过程,但现在 IntelliJ在指定任何SDKERROR: JAVA_HOME is set to an invalid directory: /Users/user/.jenv/versions/system时都会抱怨。具体来说,尝试通过 gradle 构建 .jar 文件时会抛出此错误,方法是执行gradle jar

我为尝试修复所做的工作(未明确按此顺序,并且某些命令执行了多次):

jenv enable-plugin export

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

jenv add $(/usr/libexec/java_home)

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home/

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-84.jdk/Contents/Home/

当这不起作用时,我直接从终端打开 IntelliJ,以继承bash_profile变量(我遇到过几次建议的解决方案)。

此外,我还导航到终端中的项目文件夹并发布jenv java 14以实现文件夹级规范。

以下是某些终端执行的结果,可能会提供信息:

javac -version

java -version

which java

ls -1 /Library/Java/JavaVirtualMachines

/usr/libexec/java_home -V

echo ${JAVA_HOME}

jenv version

jenv versions

第一个问题是:应该echo ${JAVA_HOME}导致系统?似乎大多数教程和解释都会导致更明确的内容(例如,/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home)。

如果系统不是预期的结果,我该如何以我尚未尝试过的方式进行修复?

作为最后一条信息,这就是我.bash_profile自己拥有的信息:

unset JAVA_HOME似乎超级可疑,但我既不知道它是什么意思,也不知道它是如何到达那里的,也没有评论它解决我的问题。

非常感谢您的帮助!