☰
在 Eclipse 中运行 Hello World Java 程序:从新建项目到配置 Program Arguments
2026/10/6 15:49:27 网站建设 项目流程
  • 文档
  • 教程
  • 知识库

【免费下载链接】til

:memo: Today I Learned

项目地址:https://gitcode.com/gh_mirrors/ti/til
点击查看免费下载

本文以 TIL 仓库中 java/run-a-hello-world-program-in-eclipse.md 为核心,完整讲解在 Eclipse IDE 中从零运行一个 Java Hello World 程序的完整链路:新建 Java 项目、在src源文件夹中创建带main方法的类、直接运行输出Hello, World!,以及通过Run Configurations的Program Arguments传入自定义名字让程序输出个性化问候。读完本文,你将掌握 Eclipse 中最基础的 Java 项目创建与运行机制,并理解main方法签名、String[] args参数与三元运算符的实际含义。

前置准备:JDK 与 Eclipse 环境

在 Eclipse 中运行任何 Java 程序,前提是机器上已经安装了可用的 JDK(Java Development Kit)。如果使用的是 macOS 且尚未安装,可以参考仓库中的 java/install-java-on-mac-with-brew.md 一文:通过 Homebrew 执行brew install java安装 OpenJDK,并用brew info openjdk给出的sudo ln -sfn命令完成符号链接,之后用下面的命令验证安装:

$ java -version

能够正常输出版本信息(例如openjdk version "23" 2024-09-17)即代表 JDK 可用。Eclipse 自身的 Java 开发工具(JDT)会自动检测系统 JRE/JDK,也可以在某次启动时在Preferences → Java → Installed JREs中手动指定。

第一步:新建 Java 项目

在 Eclipse 中,所有 Java 代码都归属于一个Java Project。如果你还没有可用的项目,按照如下步骤创建:

  1. 菜单栏选择File → New → Java Project;
  2. 在Project name输入框中填写项目名(例如HelloWorld);
  3. 在JRE区域确认选择了上一步安装的 JDK(一般保留默认即可);
  4. 点击Finish。

默认配置下,Eclipse 会为该项目自动创建名为src的源文件夹(Source Folder)用于存放.java源码,并在bin(或项目设置的输出目录)中存放编译后的.class字节码。后续创建类时,请务必选中src文件夹,这样源码才能被 Eclipse 的构建器识别并自动编译。

第二步:在 src 中创建类并编写 main 方法

接下来在src文件夹中新建一个Class。右键点击src,选择New → Class(或菜单File → New → Class),在Name中输入Greeting。Package 一栏可以留空,此时类位于默认包(default package),正好适合这个极简示例。创建完成后,向其中填入如下代码(与 java/run-a-hello-world-program-in-eclipse.md 原文一致,Greeting.java的全部内容只有一个main方法):

public class Greeting { public static void main(String[] args) { String name = args.length > 0 ? args[0] : "World"; System.out.println("Hello, " + name + "!"); } }

这段代码的每一部分都值得拆解:

  • public static void main(String[] args)是 Java 程序的入口方法。JVM 启动时会查找签名完全匹配的main方法并调用它,这就是 Eclipse 点击Run后实际触发的执行入口;
  • String[] args是命令行参数数组——程序在运行时刻接收到的所有参数都会以字符串数组的形式传入;
  • args.length > 0 ? args[0] : "World"是一个三元运算符(ternary operator)。它的语义是:如果args数组非空(即调用方传入了至少一个参数),就把第一个参数args[0]赋给name;否则回退到默认值"World";
  • System.out.println(...)将结果打印到标准输出(stdout),也就是 Eclipse 的Console视图。

第三步:运行程序的两种方式

原文档给出了两种运行方式,分别对应"无参数"与"有参数"两种典型场景。

方式一:直接从 Run 菜单运行,输出 Hello, World!

从菜单栏选择Run → Run(默认快捷键为Ctrl+F11,macOS 上为Cmd+Shift+F11)。此时没有配置任何程序参数,args是一个长度为 0 的空数组,三元运算符走:分支,name取默认值"World",因此控制台输出:

Hello, World!

方式二:通过 Run Configurations 配置 Program Arguments

如果希望程序"认识"某个具体的名字,就需要在运行配置中传入参数:

  1. 在Run菜单下选择Run Configurations...;
  2. 左侧选择Java Application下的Greeting(如果没有则点击左上角新建一个);
  3. 切换到Arguments标签页;
  4. 在Program arguments输入框中填入自定义名字,例如Ruby;
  5. 点击Run。

此时args[0]为Ruby,三元运算符走args.length > 0为真的分支,控制台输出:

Hello, Ruby!

关于Program arguments还有两点值得注意:

  • 多个参数用空格分隔,例如Ruby Python,程序始终取args[0](即Ruby)作为名字,其余参数会被忽略;
  • 如果某个参数本身包含空格,需要用双引号包裹,例如"Ada Lovelace",这样才能作为单个参数传入args[0]。

main 方法与参数传递的底层原理

从 Java 语言本身看,main方法签名中的public static表明它是一个静态入口,不依赖任何对象实例即可被 JVM 调用;args数组则完整对应命令行中的每个参数。Eclipse 做的只是把这些操作封装成了图形界面:Run菜单本质上等价于在终端中执行java Greeting(无参数),而Run Configurations中的Program Arguments等价于java Greeting Ruby。对标准 Java 编译器与运行时流程的上述描述,与本文示例在 JDK 命令行下验证的结果一致。

Eclipse 在背后完成的工作包括:使用内置编译器把Greeting.java编译为Greeting.class,再以项目输出目录为 classpath 启动 JVM 并调用Greeting.main。这也是为什么如果代码中只存在main方法、且项目配置正确,直接点击运行即可看到结果。

常见问题排查

  • Selection does not contain a main type / Editor does not contain a main type:说明当前选中的类没有可执行的main方法,或你选错了文件(例如选中了非 Java 文件)。确认运行目标为Greeting且其中存在public static void main(String[] args)。
  • public class 与文件名不一致:Java 要求 public 类的类名必须与.java文件名一致(此处都是Greeting),不一致会导致编译报错。
  • Console 没有输出:确认运行的入口类是Greeting,并且把Console视图切换到了当前进程(Console 视图右上角的按钮可切换显示各进程输出)。

延伸阅读:仓库内的相关 Java 笔记

本仓库的 Java 目录还收录了两篇与本主题互补的笔记,可继续深入:

  • java/ensure-resources-always-get-closed.md:讲解try-with-resources构造,介绍如何确保打开的文件等资源在程序结束前总是被正确关闭,是编写健壮 Java 程序的进阶话题;
  • java/install-java-on-mac-with-brew.md:在 macOS 上用 Homebrew 安装并配置 OpenJDK 的完整步骤,属于本文"前置准备"环节的配套指南。
  • 文档
  • 教程
  • 知识库

【免费下载链接】til

:memo: Today I Learned

项目地址:https://gitcode.com/gh_mirrors/ti/til
点击查看免费下载

相关推荐

上一篇:Simple Form定制化:自定义输入与组件扩展
下一篇:Ventoy隐藏分区:3层保护机制打造无法篡改的启动安全堡垒

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询