如何在 macOS 上设置或更改默认 Java (JDK) 版本?

2023-11-25

如何更改 Mac 上的默认 Java 版本?


第一次运行/usr/libexec/java_home -V这将输出类似以下内容:

Matching Java Virtual Machines (3):
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

选择您想要作为默认版本的版本(1.6.0_65-b14-462为了论证)然后:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

或者您可以仅指定主要版本,例如:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

现在当你跑步时java -version你会看见:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

Add the export JAVA_HOME…到 shell 的初始化文件中。

对于 Bash(如antonyh):

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

对于鱼(如 ormurin 所述)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

更新 .zshrc 文件应该可以:

nano ~/.zshrc

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)

按 CTRL+X 退出编辑器 按 Y 保存更改

source ~/.zshrc
echo $JAVA_HOME
java -version
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 macOS 上设置或更改默认 Java (JDK) 版本? 的相关文章

随机推荐

  • React useState setter 内的更新被调用两次

    我正在尝试更新 useState setter 范围内的内容 这正如我在以下 codepen 示例中所期望的那样 更新状态变量之外的值 但正如我的应用程序中所实现的insideCallCount每人都会被叫两次toggleCell称呼 相关
  • Google 字体无法在 Internet Explorer (IE) 11 中运行

    目前正在使用 Google Fonts 构建一个网站 一切都可以在 IE6 到 10 Firefox Chrome 和移动浏览器上运行 然而 在 IE 11 上 不会加载任何字体 并且所有内容都使用后备字体 无衬线字体等 显示 同样的问题似
  • AngularJS:何时使用服务而不是工厂

    请耐心听我说 我知道还有其他答案 例如 AngularJS 服务 提供商 工厂 但是我仍然不知道你什么时候会使用工厂服务 据我所知 工厂通常用于创建可由多个控制器调用的 通用 函数 创建通用控制器功能 Angular 文档似乎更喜欢工厂而不
  • SQL Server 清除内存

    是否可以从 SQL Server 填充的数据中清除 RAM 内存 有什么程序或选项可以做到这一点吗 您可以使用 CHECKPOINT DBCC DROPCLEANBUFFERS to 从内存中删除所有数据页 测试服务器性能很有用 如果查询所
  • 即使机器人是管理员,Discord JS 管理角色权限也丢失

    我的 Discord 机器人没有向使用该命令的用户添加角色 My Code if userCmd toLowerCase prefix verify if message member roles cache find role gt ro
  • 让 Django 1.7 在 Google App Engine 上运行

    任何人都可以帮助向我们指出如何让 Django gt 1 5 在 Google App Engine 上运行的说明吗 我看到很多人声称他们可以使用 Django 1 6 我们希望运行 1 6 或 1 7 我在这里搜索了有关如何设置的说明 到
  • iOS5 UITapRecognizer 用于 UIScrollView 干扰按钮。怎么修?

    我有一堆UIButtons 内UIView在一个UIScrollView 我正在尝试向滚动视图添加点击识别器 点击识别器会触发 但现在我的按钮都不起作用 我知道在iOS5中 UIScrollView可以在完成触摸事件后以某种方式将其传递到控
  • UIImage 的 CGImage 返回 NULL

    我创建了一个将图像分割成多个图像的函数 但是当我获取 UIImage 的 CGImage 时 CGImage 返回 NULL NSArray splitImage UIImage image NSUInteger pieces NSLog
  • 如何从 Core 2 Razor 页面 ViewModel 处理程序返回部分视图

    在 Asp Net MVC 中 您可以通过执行以下操作轻松返回部分视图 return PartialView ModelName Model 这是如何在 RazorPage ViewModel 处理程序上完成的 我明白了这一点 它并不像 M
  • 为什么这里Java运行得比C快呢?

    灵感来自这个问题 Now visible only for users with gt 10k rep 我想出了以下代码 cat loop c int main int argc char argv int i 0 while i lt 2
  • 如何在 AVX 或 SSE 指令中进行间接加载(聚集-分散)?

    我已经搜索了一段时间 但似乎在文档或 SO 中找不到任何有用的东西 这个问题并没有真正帮助我 因为它引用了修改程序集 而我正在用 C 编写 我有一些代码进行间接访问 我想对其进行矢量化 for i 0 i lt LENGTH i foo b
  • Symfony2:如何从存储库访问服务

    我有 ModelsRepository 类 class ModelsRepository extends EntityRepository 和服务 container data class ProjectName MyBundle Comm
  • 用字典替换 pandas Series 中的值

    我想替换 pandas 中的值Series使用字典 我正在关注 DSM接受的答案像这样 s Series abc abe abg d b B s replace d 但这没有效果 0 abc 1 abe 2 abg dtype object
  • 使用 ERB 打印数组元素[重复]

    这个问题在这里已经有答案了 我正在尝试将控制器中定义的简单数组打印到我的视图中 并为每个元素添加一个新行 但它所做的是将整个数组打印在一行上 这是我的控制器 class TodosController lt ApplicationContr
  • Android中如何用canvas画圆?

    我想用画布画圆 这是我的代码 我的活动 java public class MyActivity extends Activity public void onCreate Bundle savedInstanceState setCont
  • 数组属性、TList、TStringList 或 TCollection 等 (Delphi Win32)

    我正在开发各种组件 并且经常遇到需要拥有一个具有 一对多 关系 组件到属性成员 的属性 这些组件通常是可视组件 但并非总是如此 有时需要向 IDE 注册 即使用属性检查器 但并非总是如此 我发现自己不确定在设置这些属性时要采取哪条路线 使用
  • 最新和旧版本冲突的两个 Maven 依赖项

    我正在使用 spring data dynamoDB 项目here 根据其pom xml他们用过1 6 9 1的版本aws java sdk 但我需要在我的项目中使用最新版本的 aws java sdk 以便使用它的一些功能来实现 Amaz
  • 使用 require 和 node.js 加载远程 js 文件

    我一直在使用 NodeJS 和 javascript 开发在线套接字服务器 并且我一直在使用 require 在我的代码中创建 游戏室 new game obj require forza4 js 现在 当我在本地计算机上测试我的代码时 这
  • 根据 Base64 编码字符串长度计算实际数据大小

    给定编码为 Base64 编码字符串的数据 我能否以某种方式计算已编码的原始数据的实际长度only通过查看 Base64 编码字符串的长度 如果没有必要 我不想遍历字符串 这还包括对编码字符串的尾随字符进行字符串操作以检查填充 The ex
  • 如何在 macOS 上设置或更改默认 Java (JDK) 版本?

    如何更改 Mac 上的默认 Java 版本 第一次运行 usr libexec java home V这将输出类似以下内容 Matching Java Virtual Machines 3 1 8 0 05 x86 64 Java SE 8