当前位置: 首页 > article >正文

2024更新-MacOS Sonoma安装AdoptOpenJDK8最新版(Homebrew指南)

1. 为什么要在MacOS Sonoma上安装AdoptOpenJDK8如果你是一名Java开发者或者需要使用基于Java开发的工具比如Android Studio、Jenkins等那么在你的Mac电脑上安装Java开发环境是必不可少的。虽然现在Java已经更新到了很新的版本但很多老项目仍然依赖Java 8也就是JDK 1.8这就是为什么我们需要在最新的MacOS Sonoma系统上安装AdoptOpenJDK8。AdoptOpenJDK是一个社区驱动的开源项目提供了预构建的OpenJDK二进制文件。相比Oracle JDK它完全开源且免费更重要的是它提供了长期支持LTS版本这对于企业级应用开发非常重要。Homebrew则是Mac上最受欢迎的包管理工具通过它可以轻松安装和管理各种开发工具和环境。在MacOS Sonoma上安装AdoptOpenJDK8可能会遇到一些坑特别是Homebrew最近对cask命令的调整导致很多旧的安装方法已经失效。我最近刚在新买的MacBook Pro上配置开发环境就遇到了这个问题。经过一番折腾和测试终于找到了可靠的安装方法下面就把完整的步骤分享给大家。2. 安装前的准备工作2.1 确保Homebrew已安装并更新首先我们需要确保你的Mac上已经安装了最新版的Homebrew。打开终端Terminal输入以下命令检查brew --version如果你看到版本号输出比如Homebrew 4.1.0说明已经安装。如果没有安装可以使用以下命令安装/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)安装完成后强烈建议先更新Homebrew到最新版本brew update brew upgrade这个步骤很重要因为Homebrew的仓库和安装规则经常更新使用旧版本可能会导致后续安装出现问题。我遇到过因为没更新brew导致找不到软件包的情况白白浪费了半小时排查问题。2.2 安装Xcode命令行工具Java开发需要一些基础的编译工具这些工具包含在Xcode命令行工具中。即使你不开发iOS应用也需要安装这个工具包。在终端中输入xcode-select --install这会弹出一个对话框点击安装按钮即可。安装过程可能需要几分钟时间取决于你的网络速度。安装完成后可以通过以下命令验证xcode-select -p如果输出类似/Library/Developer/CommandLineTools的路径说明安装成功。这一步很多人会忽略但如果没有安装命令行工具后续可能会遇到各种奇怪的编译错误。3. 安装AdoptOpenJDK8的具体步骤3.1 添加AdoptOpenJDK的Homebrew仓库由于AdoptOpenJDK已经迁移到了Eclipse基金会旗下现在叫做Eclipse Temurin所以我们需要先添加它的Homebrew仓库。在终端中执行brew tap homebrew/cask-versions brew tap adoptopenjdk/openjdk第一个命令添加了Homebrew的cask-versions仓库这允许我们安装特定版本的软件。第二个命令则添加了AdoptOpenJDK的官方仓库。这里有个小技巧由于网络原因tap命令可能会失败如果遇到问题可以多试几次或者使用科学上网工具注意此处不讨论具体工具。我最近帮同事安装时就遇到了这个问题tap命令总是超时。后来发现是DNS解析的问题临时切换到手机热点就成功了。如果你也遇到类似问题可以尝试换个网络环境。3.2 实际安装AdoptOpenJDK8现在可以正式安装AdoptOpenJDK8了。由于Homebrew最近取消了cask子命令我们需要使用新的安装语法brew install --cask adoptopenjdk8这个命令会从GitHub下载AdoptOpenJDK8的最新预编译版本并安装。安装过程中可能会要求你输入密码这是正常的因为需要将JDK安装到系统目录。安装过程可能会比较慢因为需要下载100MB左右的安装包。你可以看到下载进度条耐心等待即可。如果下载中断了可以重新运行安装命令Homebrew会从中断处继续下载。3.3 验证安装是否成功安装完成后我们需要验证Java是否安装正确。在终端中输入java -version如果安装成功你应该能看到类似下面的输出openjdk version 1.8.0_382 OpenJDK Runtime Environment (Temurin)(build 1.8.0_382-b05) OpenJDK 64-Bit Server VM (Temurin)(build 25.382-b05, mixed mode)注意版本号可能会有所不同因为AdoptOpenJDK会定期更新。重要的是确认你看到的是1.8.x版本这表示Java 8已经成功安装。4. 常见问题排查与解决4.1 安装过程中出现错误如果你在安装过程中遇到错误比如Error: Cask adoptopenjdk8 is unavailable这通常意味着Homebrew的仓库没有正确更新。可以尝试以下步骤更新Homebrewbrew update重新tap仓库brew untap adoptopenjdk/openjdk brew tap adoptopenjdk/openjdk再次尝试安装brew install --cask adoptopenjdk84.2 多版本Java管理如果你需要在不同Java版本之间切换可以考虑使用jenv工具。这是一个轻量级的Java版本管理工具安装和使用都很简单brew install jenv然后添加Java安装路径jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home之后就可以方便地切换Java版本了。我在开发不同项目时经常需要在Java 8和Java 17之间切换jenv让这个变得非常简单。4.3 环境变量配置大多数情况下安装AdoptOpenJDK8后不需要手动配置环境变量因为安装程序会自动处理。但如果你发现某些工具找不到Java可以手动设置JAVA_HOMEexport JAVA_HOME$(/usr/libexec/java_home -v 1.8)你可以把这行添加到你的shell配置文件如~/.zshrc或~/.bash_profile中这样每次打开终端都会自动设置。5. 卸载与清理如果你需要卸载AdoptOpenJDK8可以使用以下命令brew uninstall --cask adoptopenjdk8这会移除Java安装但可能会留下一些配置文件。如果你想彻底清理可以手动删除以下目录/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk /usr/local/Caskroom/adoptopenjdk8记得在删除前确认没有其他应用依赖这个Java版本。我曾经不小心删除了项目依赖的Java版本导致整个团队的CI/CD流水线中断了几个小时这是个惨痛的教训。6. 为什么选择AdoptOpenJDK你可能会有疑问为什么选择AdoptOpenJDK而不是Oracle JDK或者其他发行版这里有几个重要原因完全开源免费AdoptOpenJDK是真正的开源实现没有任何商业限制。长期支持提供对LTS版本的长期维护和安全更新。多平台支持除了macOS还支持Windows、Linux等多种平台。社区驱动由活跃的开源社区维护响应迅速。在实际使用中我发现AdoptOpenJDK的性能和稳定性都非常好完全能满足开发需求。特别是在Docker容器中使用时它的轻量级特性表现得尤为突出。

相关文章:

2024更新-MacOS Sonoma安装AdoptOpenJDK8最新版(Homebrew指南)

1. 为什么要在MacOS Sonoma上安装AdoptOpenJDK8? 如果你是一名Java开发者,或者需要使用基于Java开发的工具(比如Android Studio、Jenkins等),那么在你的Mac电脑上安装Java开发环境是必不可少的。虽然现在Java已经更新…...

高效优化Windows 11:Win11Debloat彻底提升系统性能与隐私保护指南

高效优化Windows 11:Win11Debloat彻底提升系统性能与隐私保护指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...

终极Goyo.vim配置指南:打造完美无干扰写作环境的10个技巧

终极Goyo.vim配置指南:打造完美无干扰写作环境的10个技巧 【免费下载链接】goyo.vim :tulip: Distraction-free writing in Vim 项目地址: https://gitcode.com/gh_mirrors/go/goyo.vim Goyo.vim是一款专为Vim用户设计的无干扰写作插件,它能帮助你…...

Omni-Vision Sanctuary 算法优化:LSTM时序网络在视频分析中的应用

Omni-Vision Sanctuary 算法优化:LSTM时序网络在视频分析中的应用 1. 引言:视频分析中的时序挑战 视频数据与静态图像最大的区别在于时间维度。传统计算机视觉方法在处理连续帧时,往往将每一帧视为独立图像进行分析,忽略了帧与帧…...

告别黑苹果配置难题:零基础也能轻松上手的智能工具详解

告别黑苹果配置难题:零基础也能轻松上手的智能工具详解 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾因黑苹果EFI配置的复杂流程…...

coze-loop快速体验:粘贴代码选择优化目标,AI自动完成

coze-loop快速体验:粘贴代码选择优化目标,AI自动完成 如果你写过代码,肯定有过这样的经历:写完一段代码后总觉得不够完美,想优化却不知道从何下手。是应该追求更快的运行速度,还是让代码更容易读懂&#x…...

**ServiceWorker 从零到一:打造离线优先的现代 Web 应用体验**在现代前端开发中,**S

ServiceWorker 从零到一:打造离线优先的现代 Web 应用体验 在现代前端开发中,ServiceWorker 已不再是“高级玩家”的专属技能,而是构建高性能、可离线运行的 PWA(Progressive Web App)的核心基础设施。它通过拦截网络…...

C++边缘设备编译臃肿难题(工业级轻量编译链路全拆解)

第一章:C边缘设备编译臃肿的根源与工业级轻量化必要性在资源受限的工业边缘设备(如ARM Cortex-M7微控制器、RISC-V SoC或低功耗网关)上,C项目常面临二进制体积激增、启动延迟升高和内存碎片化等严峻挑战。其根源并非语言本身&…...

NSSM保姆级教程:除了FRP,你的这些Windows命令行工具也能开机自启

NSSM终极指南:让任意Windows命令行工具化身系统服务 每次重启电脑后手动启动爬虫脚本、数据同步工具或是游戏服务器,是不是已经让你精疲力尽?作为Windows高级用户,我们需要的不仅是简单的开机自启,而是像系统服务一样可…...

重启 CSDN 两周复盘:从 0 到 10700 + 阅读,37 岁老码农的内容创作实战

从 3 月 23 日正式重启 CSDN,到今天 4 月 6 日,整整两周时间。从最初的「码龄 14 年,重新出发」,到现在累计10700 总阅读量、155 分原力值,这两周的每一步,都是我对「个人技术品牌」的真实实践&#xff0c…...

Flutter 布局系统:构建响应式界面

Flutter 布局系统:构建响应式界面掌握 Flutter 布局系统的核心概念和最佳实践。一、布局系统概述 作为一名追求像素级还原的 UI 匠人,我深知布局系统在 Flutter 开发中的重要性。Flutter 提供了一套强大的布局系统,让我们能够创建各种复杂的界…...

ccmusic-database开源模型教程:基于CV预训练模型迁移学习音频任务的完整路径

ccmusic-database开源模型教程:基于CV预训练模型迁移学习音频任务的完整路径 1. 项目简介 ccmusic-database是一个基于计算机视觉预训练模型的音乐流派分类系统,它巧妙地将图像处理领域的成熟技术迁移到音频分析任务中。这个开源项目使用VGG19_BN作为基…...

效率提升秘籍:借助快马平台快速构建魔鬼面具图像滤镜应用

最近在做一个有趣的个人项目——魔鬼面具在线滤镜应用。作为一个前端开发者,我发现这类图像处理应用如果从零开始搭建会花费大量时间在基础框架上,而使用InsCode(快马)平台可以快速生成项目骨架,让我能专注于核心功能的实现。下面分享下我的开…...

uosc:革命性MPV播放器UI,基于接近度智能显示界面元素

uosc:革命性MPV播放器UI,基于接近度智能显示界面元素 【免费下载链接】uosc Feature-rich minimalist proximity-based UI for MPV player. 项目地址: https://gitcode.com/gh_mirrors/uo/uosc uosc是一款为MPV播放器打造的功能丰富且极简的基于接…...

JPEGView:Windows平台轻量级图像工具的性能革命

JPEGView:Windows平台轻量级图像工具的性能革命 【免费下载链接】jpegview Fork of JPEGView by David Kleiner - fast and highly configurable viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimal GUI. Basic on-the-fly image pr…...

Grimoire:终极书签管理器 - 为巫师打造的神奇知识宝库

Grimoire:终极书签管理器 - 为巫师打造的神奇知识宝库 【免费下载链接】grimoire Bookmark manager for the wizards 🧙 项目地址: https://gitcode.com/gh_mirrors/gr/grimoire Grimoire 是一款专为现代互联网巫师设计的终极书签管理器&#xff…...

用Anything to RealCharacters为游戏角色“拍照”:生成高质感真人定妆照

用Anything to RealCharacters为游戏角色"拍照":生成高质感真人定妆照 1. 引言:游戏角色的"数字摄影棚" 想象一下,你精心设计的游戏角色突然从屏幕里走出来,站在真实的摄影棚中,专业的灯光打在他…...

如何高效管理多平台网盘文件:LinkSwift直链获取工具深度解析

如何高效管理多平台网盘文件:LinkSwift直链获取工具深度解析 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 …...

如何用数字记忆守护留住QQ空间的青春足迹?一份让回忆永不褪色的解决方案

如何用数字记忆守护留住QQ空间的青春足迹?一份让回忆永不褪色的解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 当数字记忆面临消失危机 2023年的一个普通下午&…...

EdB Prepare Carefully完整教程:3步打造完美RimWorld开局体验

EdB Prepare Carefully完整教程:3步打造完美RimWorld开局体验 【免费下载链接】EdBPrepareCarefully EdB Prepare Carefully, a RimWorld mod 项目地址: https://gitcode.com/gh_mirrors/ed/EdBPrepareCarefully 还在为RimWorld随机生成的"废柴"殖…...

PixEz-flutter网络优化实战:3个技巧打造流畅的二次元内容体验

PixEz-flutter网络优化实战:3个技巧打造流畅的二次元内容体验 【免费下载链接】pixez-flutter 一个支持免代理直连及查看动图的第三方Pixiv flutter客户端 项目地址: https://gitcode.com/gh_mirrors/pi/pixez-flutter 作为一款支持免代理直连的第三方Pixiv客…...

到 2030 年的能力-AI

近年来,人工智能进步的关键投入(算力、算法改进和数据)呈指数级增长,新的推理时扩展(inferencetime scaling)方法正进一步提高模型的能力,甚至在模型完成训练之后。如果这些趋势继续下去&#x…...

告别手动标注!用MedCLIP-SAM+BiomedCLIP实现医学图像的“一句话分割”

医学图像智能分割革命:当自然语言指令遇上MedCLIP-SAM 在放射科医生的日常工作中,最耗时的往往不是诊断本身,而是那些繁琐的图像标注工作。想象一下,当一位胸外科医生需要从数百张CT片中定位所有肺结节时,传统方法要求…...

如何让老款RTX显卡免费获得AMD FSR3帧生成技术?5分钟完整解决方案

如何让老款RTX显卡免费获得AMD FSR3帧生成技术?5分钟完整解决方案 【免费下载链接】dlssg-to-fsr3 Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS Frame Generation (nvngx_dlssg). 项目地址: https://gitcode.com/gh_mirrors/dl/dlssg-to-…...

WinUtil:Windows系统管理工具让用户实现高效系统维护与优化

WinUtil:Windows系统管理工具让用户实现高效系统维护与优化 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 问题诊断:…...

如何用Dism++解决Windows系统维护难题:高效全面的实用指南

如何用Dism解决Windows系统维护难题:高效全面的实用指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Windows系统使用一段时间后,往往…...

如何在Windows中快速读取Linux分区?Ext2Read完整教程指南

如何在Windows中快速读取Linux分区?Ext2Read完整教程指南 【免费下载链接】ext2read A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows. 项目地址: https://gitcode.com/gh_mirrors/ex/ext2read 你是否曾经遇到过…...

League Akari:英雄联盟玩家的终极自动化工具箱完整指南

League Akari:英雄联盟玩家的终极自动化工具箱完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款专为《英…...

新手避坑指南:当npm报错128时,如何用快马AI轻松完成第一个项目

最近在帮朋友入门Node.js开发时,发现很多新手卡在环境配置这一步就放弃了。特别是遇到npm error code 128这种报错时,往往连错误说明都看不懂。今天分享一个用InsCode(快马)平台快速搭建第一个Node.js项目的避坑指南,特别适合零基础开发者。 …...

告别金融数据获取难题:mootdx打造一站式通达信数据解决方案

告别金融数据获取难题:mootdx打造一站式通达信数据解决方案 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析和量化交易领域,获取高质量、实时的市场数据一直…...