如何在macOS命令行运行Java程序?

环境准备:确认 JDK 安装

  1. 检查 JDK 安装
    打开终端(Terminal),输入:

    java -version
    • 若显示版本号(如 openjdk 17.0.8),说明已安装。
    • 若提示 command not found,需安装 JDK。
  2. 安装 JDK(未安装时)

    • 推荐方式:通过 Homebrew 安装:
      brew install openjdk@17  # 安装 OpenJDK 17(可替换其他版本号)
    • 官方下载:访问 Oracle JDK 官网 下载安装包。
  3. 配置环境变量(可选)
    若使用 Homebrew 安装,需添加路径到 ~/.zshrc(或 ~/.bashrc):

    echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc

编写 Java 程序

  1. 创建示例文件 HelloWorld.java
    nano HelloWorld.java  # 使用终端文本编辑器
  2. 输入以下代码:
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, Command Line!");
        }
    }

    保存并退出(Ctrl + OEnterCtrl + X)。


编译与运行

  1. 编译程序
    在终端进入文件目录,执行:

    javac HelloWorld.java
    • 成功后会生成 HelloWorld.class 字节码文件。
    • 报错处理:检查代码语法或路径是否正确。
  2. 运行程序
    输入:

    java HelloWorld

    注意

    • 使用类名 HelloWorld不含 .class 后缀)。
    • 若提示 类找不到,检查类名拼写或包路径。

进阶场景处理

  1. 带包名的程序
    若代码声明包 com.example

    package com.example;
    public class HelloWorld { ... }
    • 需创建目录结构:mkdir -p com/example
    • 移动文件:mv HelloWorld.java com/example/
    • 编译:javac com/example/HelloWorld.java
    • 运行:java com.example.HelloWorld
  2. 外部 JAR 依赖
    使用 -cp 指定类路径:

    java -cp .:libs/gson-2.10.jar MyApp  # 加载当前目录和 libs/gson.jar
  3. 传递命令行参数
    在代码中通过 args[] 获取参数:

    java HelloWorld "参数1" 参数2

常见问题解决

  • 错误:javac: command not found
    JDK 未安装或环境变量未配置(参考第一步)。

  • 错误:主类找不到

    • 类名拼写错误(区分大小写)。
    • 未在包路径的根目录执行(带包名程序需从根目录运行)。
  • 错误:不支持的类文件版本
    编译版本高于运行环境(如用 JDK 17 编译但用 JDK 11 运行),需统一版本。


最佳实践建议

  1. 使用 IDE 辅助:如 IntelliJ IDEA 或 VS Code,简化编译流程。
  2. 构建工具:复杂项目用 Maven/Gradle 管理依赖和构建。
  3. 版本管理:通过 jenv 工具切换多版本 JDK。

引用说明

  • Oracle 官方文档:Java SE Documentation
  • Homebrew 安装指南:brew.sh
  • OpenJDK 下载:Adoptium JDK 基于 macOS Ventura 13.x 及 Java 17 验证,适用于主流 Intel/Apple Silicon 机型。*

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8999.html

(0)
酷番叔酷番叔
上一篇 2025年7月28日 08:23
下一篇 2025年7月28日 08:50

相关推荐

  • 为什么电脑总听不懂你的命令?

    理解计算机指令集是通过输入输出设备与机器交互的基础,关键在于将人类需求转化为精确的可执行命令。

    2025年6月13日
    17800
  • 国内云存储究竟有何用途?

    用于备份重要数据,实现手机电脑多端同步,以及大文件的快速传输与分享。

    2026年2月14日
    8000
  • 国内主流搜索引擎哪家强?深度解析与对比!

    百度综合实力最强,必应搜索体验好,搜狗微信搜索有优势。

    2026年2月21日
    10600
  • 安全内核的核心功能有哪些?

    安全内核是操作系统或信息系统中处于最底层、最核心的安全组件,它直接管理硬件资源并执行安全策略,是整个系统安全体系的基石,如同建筑的承重墙,安全内核虽不直接面向用户,却通过精细的机制为上层应用和数据提供全方位保护,其核心能力体现在多个维度,共同构建起抵御内外威胁的坚固防线,访问控制:系统的“守门人”访问控制是安全……

    2025年11月18日
    11600
  • 交换机无法执行pruning命令怎么办?

    在交换网络中,VLAN Trunk pruning(修剪)是一项重要功能,主要用于通过减少不必要的VLAN流量广播来优化网络性能,尤其是在Trunk链路上,当管理员在交换机上执行pruning命令(如Cisco的switchport trunk pruning vlan或VTP pruning启用命令)时,若命……

    2025年8月26日
    14500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信