0

0

如何在Mac上安装Java并运行简单程序

P粉602998670

P粉602998670

发布时间:2025-09-21 22:46:01

|

1047人浏览过

|

来源于php中文网

原创

答案:通过Homebrew安装JDK并配置环境变量可轻松在Mac上运行Java程序。首先安装Homebrew,再用brew install openjdk@17等命令安装JDK,接着手动设置JAVA_HOME和PATH,最后编译运行HelloWorld程序。推荐使用Homebrew因其简化安装、便于版本管理,可通过jenv实现多版本灵活切换,并根据常见错误提示排查配置或代码问题。

如何在mac上安装java并运行简单程序

在Mac上安装Java并运行一个简单的程序,说白了,核心就是搞定JDK的安装和环境变量的配置,然后用命令行编译运行。这听起来可能有点技术范儿,但实际操作起来并不复杂,大多数时候,卡壳的地方往往是那些不起眼的环境变量设置。一旦这些基础打牢,后面写代码就顺畅多了。

解决方案

要在Mac上安装Java并运行程序,最推荐的方式是使用Homebrew来管理JDK,因为它简化了安装和版本切换的流程。

  1. 安装Homebrew(如果尚未安装): 打开终端(Terminal.app),输入以下命令并回车:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    这个过程可能需要几分钟,并要求你输入Mac的用户密码。Homebrew安装完成后,它会提示你运行
    brew doctor
    来检查环境。

  2. 安装Java Development Kit (JDK): Homebrew提供了OpenJDK的多个版本。我个人建议安装一个LTS(长期支持)版本,比如OpenJDK 11或OpenJDK 17,它们相对稳定,社区支持也广。 以OpenJDK 17为例,在终端输入:

    brew install openjdk@17
    如果你想安装OpenJDK 11,就用
    brew install openjdk@11
    。Homebrew会自动处理下载和安装。

  3. 配置JAVA_HOME环境变量: 这是最容易出错,也是最关键的一步。Homebrew安装的JDK通常不会自动设置全局的

    JAVA_HOME
    。你需要手动将其添加到你的shell配置文件中(比如
    ~/.zshrc
    ~/.bash_profile
    ,取决于你用的是Zsh还是Bash)。 首先,找到Homebrew安装的JDK路径。通常在
    /usr/local/opt/openjdk@17/libexec/openjdk
    (如果安装的是17)。 然后,编辑你的shell配置文件。以Zsh为例:
    nano ~/.zshrc
    在文件末尾添加以下两行(请根据你安装的Java版本调整路径):

    export JAVA_HOME="/usr/local/opt/openjdk@17/libexec/openjdk"
    export PATH="$JAVA_HOME/bin:$PATH"

    保存并退出(按

    Ctrl+X
    ,然后
    Y
    ,再回车)。 最后,让配置文件生效:
    source ~/.zshrc
    (如果你用的是Bash,就是
    source ~/.bash_profile
    )

  4. 验证安装: 在终端输入:

    java -version
    javac -version
    如果能正确显示Java版本信息,说明JDK安装成功并配置好了。

  5. 编写并运行一个简单的Java程序: 打开任何文本编辑器(比如VS Code, Sublime Text, 或者直接用

    nano
    ),创建一个名为
    HelloWorld.java
    的文件,输入以下代码:

    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, Mac Java!");
        }
    }

    保存文件到你喜欢的位置,比如桌面或某个项目文件夹。 回到终端,使用

    cd
    命令进入你保存
    HelloWorld.java
    的目录。 然后,编译程序:
    javac HelloWorld.java
    如果一切顺利,这个命令不会有任何输出,但会在同目录下生成一个
    HelloWorld.class
    文件。 最后,运行程序:
    java HelloWorld
    终端会输出:
    Hello, Mac Java!

这样,你就成功在Mac上安装了Java并运行了你的第一个程序。

为什么Mac用户推荐使用Homebrew安装Java JDK?

说实话,我个人觉得Homebrew简直是Mac开发者的福音。它让原本可能有点繁琐的软件安装和管理变得异常简单。对于Java JDK来说,用Homebrew安装主要有以下几个显而易见的好处:

立即学习Java免费学习笔记(深入)”;

首先,操作简单快捷。你只需要一行命令,Homebrew就能自动下载、解压、安装JDK,省去了手动去Oracle官网下载、同意许可、双击安装包、再手动删除安装包的步骤。尤其是Oracle现在对JDK的下载策略有所调整,有时会需要登录,Homebrew则绕开了这些小麻烦。

其次,版本管理方便。作为开发者,我们经常需要在不同的项目中使用不同版本的JDK。比如,某个老项目可能还在用Java 8,新项目已经用上Java 17了。Homebrew允许你同时安装多个JDK版本(比如

openjdk@8
openjdk@11
openjdk@17
),并且通过符号链接和配合
JAVA_HOME
的设置,可以很方便地进行版本切换。这比手动管理多个JDK路径要优雅得多。

再者,依赖关系处理。虽然JDK本身依赖不多,但Homebrew在安装其他开发工具时,如果它们依赖特定版本的Java,Homebrew也能智能地处理这些依赖关系,确保你的开发环境始终保持一致和健康。

最后,社区支持和更新及时。Homebrew的社区非常活跃,Formula(软件包定义)更新及时,通常能很快地跟进OpenJDK的最新发布。这意味着你能更容易地获取到最新的安全补丁和功能改进。我个人在遇到问题时,Homebrew的报错信息通常也比较清晰,方便排查。

安装多个Java版本时,如何在Mac上进行切换和管理?

在Mac上,管理多个Java版本是个非常常见的需求,尤其对于那些需要维护不同项目的开发者来说。我的经验是,主要有两种方式可以实现:手动切换

JAVA_HOME
环境变量,或者使用专门的Java版本管理工具,比如
jenv

手动切换

JAVA_HOME
这是最直接的方法。当你通过Homebrew安装了多个JDK版本后(例如
openjdk@11
openjdk@17
),它们会分别安装在
/usr/local/opt/openjdk@11/libexec/openjdk
/usr/local/opt/openjdk@17/libexec/openjdk
这样的路径下。 要切换版本,你只需要修改你的shell配置文件(
~/.zshrc
~/.bash_profile
)中的
JAVA_HOME
变量,让它指向你想要使用的JDK路径。 例如,如果你想用Java 11:

export JAVA_HOME="/usr/local/opt/openjdk@11/libexec/openjdk"
export PATH="$JAVA_HOME/bin:$PATH"

然后

source ~/.zshrc
使其生效。 如果你想用Java 17,就改成:

export JAVA_HOME="/usr/local/opt/openjdk@17/libexec/openjdk"
export PATH="$JAVA_HOME/bin:$PATH"

这种方法虽然有效,但每次切换都需要编辑文件并

source
,对于频繁切换来说,效率有点低。

使用

jenv
进行管理(推荐):
jenv
是一个轻量级的命令行工具,专门用于管理Mac上的Java版本。它允许你设置全局的Java版本,也可以为每个项目(目录)设置独立的Java版本,非常灵活。

网趣购物系统精装版
网趣购物系统精装版

精装版对原程序进行了大量的更新和调整,在安全性和实用性上均有重大突破,特色功能:完美整合支付宝功能,根据用户需求,并具有打开和关闭支付宝的功能!匿名用户购买功能,商城支持匿名直接购买商品功能,方便用户购物!增加了后台LOGO图片上传管理功能,管理简单、易用对广告管理进行扩充,所有广告图片、FLASH均可实现在线上传管理!多种在线支付方式,程序同时支持网银、西部支付,可自由选择切换!支持简繁互换显示

下载
  1. 安装jenv:

    brew install jenv

  2. 配置jenv到shell: 在你的

    ~/.zshrc
    ~/.bash_profile
    中添加以下行:

    export PATH="$HOME/.jenv/bin:$PATH"
    eval "$(jenv init -)"

    然后

    source
    你的配置文件。

  3. 将已安装的JDK添加到jenv:

    jenv add /usr/local/opt/openjdk@11/libexec/openjdk
    jenv add /usr/local/opt/openjdk@17/libexec/openjdk
    你可以通过
    jenv versions
    查看jenv识别到的所有Java版本。

  4. 设置Java版本:

    • 全局设置:
      jenv global 17.0
      (或者你添加时的版本号,比如
      11.0
      )
    • 本地(项目)设置: 在你的项目根目录中,
      jenv local 11.0
      。这样,当你进入这个目录时,Java版本会自动切换到11。
    • 临时设置:
      jenv shell 17.0
      (只在当前终端会话中有效)

jenv
通过修改
PATH
变量,让
java
javac
命令指向
jenv
的shim,然后
jenv
再根据你的配置指向正确的JDK路径。这种方式避免了手动修改
JAVA_HOME
的麻烦,让版本切换变得非常流畅。对于经常在不同Java版本间跳跃的开发者来说,
jenv
几乎是必备工具。

运行Java程序时,常见的错误提示有哪些,如何排查?

在运行Java程序时,新手和老手都难免遇到一些错误提示。这些错误通常指向环境配置、代码语法或运行时逻辑问题。我的经验是,错误信息往往是最好的线索,关键在于理解它们在说什么。

  1. javac: command not found
    java: command not found

    • 问题所在: 这通常意味着你的系统没有找到
      javac
      (Java编译器)或
      java
      (Java虚拟机)命令。最常见的原因是
      PATH
      环境变量没有正确配置,或者JDK根本没有安装。
    • 排查方法:
      • 检查JDK是否安装: 运行
        ls -l /usr/local/opt/openjdk*
        ,看看Homebrew是否列出了JDK目录。
      • 检查
        JAVA_HOME
        PATH
        在终端运行
        echo $JAVA_HOME
        echo $PATH
        。确认
        JAVA_HOME
        指向了正确的JDK安装路径,并且
        $JAVA_HOME/bin
        包含在
        PATH
        中。
      • 重新加载配置文件: 如果你修改了
        ~/.zshrc
        ~/.bash_profile
        ,确保你已经
        source
        了它,或者重启了终端。
      • 权限问题: 极少数情况下,可能是JDK安装目录的权限问题,但Homebrew安装通常不会有这个问题。
  2. java.lang.ClassNotFoundException: YourProgramName

    • 问题所在: Java虚拟机找不到你想要运行的类文件(
      .class
      文件)。这通常发生在
      java YourProgramName
      命令执行时。
    • 排查方法:
      • 类名拼写: 确保你在
        java
        命令后面输入的类名(
        YourProgramName
        )与你的
        .java
        文件中的
        public class
        名称完全一致,包括大小写。
      • 当前目录: 确保你在运行
        java YourProgramName
        时,终端的当前目录就是包含
        YourProgramName.class
        文件的目录。Java默认会在当前目录查找类。
      • 包(Package)问题: 如果你的类在一个包中(例如
        package com.example;
        ),那么运行方式会不同。你需要进入包的根目录,然后用
        java com.example.YourProgramName
        来运行。
      • CLASSPATH: 对于更复杂的项目,可能需要配置
        CLASSPATH
        环境变量来告诉JVM去哪里找
        .class
        文件。但对于简单程序,通常不是问题。
  3. Error: Could not find or load main class YourProgramName

    • 问题所在: 类似于
      ClassNotFoundException
      ,JVM找不到
      main
      方法所在的类。
    • 排查方法:
      ClassNotFoundException
      的排查方法类似,重点检查类名、当前目录和包结构。另外,确保你的类中有一个正确的
      public static void main(String[] args)
      方法。
  4. error: cannot find symbol
    error: package does not exist

    • 问题所在: 这是编译错误(
      javac
      阶段),通常意味着你的代码引用了一个不存在的变量、方法,或者导入了一个不存在的包。
    • 排查方法:
      • 拼写错误: 仔细检查代码中变量名、方法名、类名和包名的拼写。Java是大小写敏感的。
      • 导入语句: 如果你使用了其他类库或自定义类,确保你已经通过
        import
        语句正确导入了它们。
      • 类库缺失: 如果你使用了第三方库,确保这些库的JAR文件已经包含在编译器的
        CLASSPATH
        中(通常通过
        javac -cp path/to/your.jar YourProgram.java
        来指定)。
      • 编译顺序: 如果你的项目有多个
        .java
        文件,确保它们都被正确编译了。

遇到错误时,不要慌张。仔细阅读错误信息,它通常会告诉你问题出在哪里,甚至会给出具体的文件名和行号。根据这些线索,一步步排查,问题总能解决。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

443

2023.08.02

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

440

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

178

2023.10.30

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

296

2023.10.25

javascriptvoid(o)怎么解决
javascriptvoid(o)怎么解决

javascriptvoid(o)的解决办法:1、检查语法错误;2、确保正确的执行环境;3、检查其他代码的冲突;4、使用事件委托;5、使用其他绑定方式;6、检查外部资源等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

177

2023.11.23

java中void的含义
java中void的含义

本专题整合了Java中void的相关内容,阅读专题下面的文章了解更多详细内容。

98

2025.11.27

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

469

2024.01.03

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

158

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

C# 教程
C# 教程

共94课时 | 7.8万人学习

Java 教程
Java 教程

共578课时 | 52.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号