用 IntelliJ IDEA 写第一个 Java 8 程序:Hello World 实操指南

作为 Java 初学者,“Hello World” 是你接触这门语言的第一个里程碑。本文会聚焦 Java 8(经典 LTS 版本,企业级开发常用)IntelliJ IDEA(当前主流 Java 开发工具),用简洁连贯的步骤带你完成从环境准备到程序运行的全过程,避免零散的列表,让操作流程更易跟随。

一、先做好准备:安装 Java 8 和 IntelliJ IDEA

在写代码前,需要先搭好开发环境——核心是 Java 8 开发工具包(JDK 8)和 IntelliJ IDEA,两者都要选适配当前系统的版本,避免后续兼容问题。

首先装 JDK 8:Java 8 作为长期支持版本,至今仍是很多企业项目的首选,推荐从 Oracle 官网或 Adoptium(开源免费,适配性好)下载。注意区分系统:Windows 选 “Windows x64 Installer”,macOS 选 “macOS x64 .dmg”,安装时建议选无中文、无空格的路径(比如 Windows 装在 D:\Java\jdk1.8.0_301,macOS 会自动默认路径),装完后可以打开命令行(Windows 用 cmd,macOS 用终端),输入 java -version 验证,能显示 “java version “1.8.0_xxx”” 就说明 JDK 8 装好了。

接着装 IntelliJ IDEA:选社区版(Community Edition)就行,免费且足够满足新手需求,从 JetBrains 官网下载对应系统版本。安装时注意勾选“创建桌面快捷方式”(方便后续打开),Windows 还可以勾选“关联 .java 文件”,macOS 拖到应用程序文件夹即可。首次打开 IDE 时,按提示完成初始配置(比如选主题、安装必要插件),不用额外装 Java 插件——IDEA 社区版默认自带 Java 开发支持。

二、用 IntelliJ IDEA 创建 Java 8 项目

在这里插入图片描述

打开 IntelliJ IDEA 后,不用急着写代码,先创建一个标准的 Java 项目,让 IDE 帮你管理文件结构,避免手动建文件夹的麻烦。

首次打开 IDE 会看到“Welcome to IntelliJ IDEA”界面,点击“Create New Project”;如果已经打开过其他项目,就从顶部菜单栏选“File -> New -> Project”。接下来在弹出的项目配置窗口里,左边选“Java”,右边会提示“Project SDK”——这里要选我们刚装的 Java 8,要是下拉列表里没有,就点“Add SDK -> JDK”,然后找到 JDK 8 的安装目录(比如 Windows 下的 D:\Java\jdk1.8.0_301,macOS 下的 /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home),选中后点击“OK”。

项目 SDK 配置好后,点击“Next”,不用勾选“Create project from template”(新手先从空白项目开始,更清楚文件结构),再点“Next”。然后设置项目名称,建议叫“HelloWorldApp”(见名知意),项目路径可以默认,也可以自己选(同样避免中文和空格),最后点击“Finish”。

等待 IDE 加载项目,加载完成后,你会看到左侧“Project”面板里有“HelloWorldApp”项目,下面有“src”文件夹——这是用来放 Java 源代码的地方,所有 .java 文件都要放在这里面。

三、写代码:在 IDEA 里创建 HelloWorld 类

项目建好后,接下来创建第一个 Java 类,也就是写代码的地方。在左侧“Project”面板里,右键点击“src”文件夹,选“New -> Java Class”,弹出的输入框里填类名“HelloWorld”——注意 Java 是大小写敏感的,类名首字母要大写,而且这个名字会和后续的 .java 文件名一致,不能乱填。

点击“OK”后,IDEA 会自动生成一个空白的类文件,里面只有类的定义代码。接下来把以下代码复制进去,或者手动输入(建议手动输,熟悉语法):

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!"); // 输出问候语}
}

输入的时候可以留意 IDEA 的小技巧:比如输入“main”后,按 Tab 键,IDE 会自动补全 main 方法的完整代码(public static void main(String[] args) {}),不用手动敲全;输入“sout”后按 Tab 键,会自动补全 System.out.println(),只需要在括号里填要输出的内容就行——这些功能能帮你减少拼写错误,提高效率。

代码输完后,记得按 Ctrl+S(Windows)或 Command+S(macOS)保存文件,不过 IDEA 也会自动保存,不用担心代码丢失。

四、运行程序:看 Hello World 输出结果

代码写好后,就可以运行程序了,IDEA 会帮你自动完成编译(把 .java 文件转成 JVM 能识别的 .class 字节码文件),不用手动敲编译命令。

运行的方法很简单:在代码编辑区的任意位置右键点击,选“Run ‘HelloWorld.main()’”;或者看类名“HelloWorld”旁边,会有一个绿色的小三角图标,点击这个图标也能运行;还有一种方式是用快捷键,Windows 按 Shift+F10,macOS 按 Control+R。

点击运行后,IDE 底部会弹出“Run”面板(也就是控制台),稍等一下,就能看到里面输出了“Hello World!”——这说明你的第一个 Java 8 程序成功运行了!如果没看到输出,先检查代码有没有拼写错误(比如少了分号、括号不匹配),再看看项目的 SDK 是不是选的 Java 8,一般新手遇到的问题大多是这两类。

五、额外:用命令行验证(了解底层流程)

如果想更清楚 Java 程序的编译和运行逻辑,也可以用命令行手动操作,这能帮你理解 IDEA 背后的工作原理。

首先找到项目的源代码路径:在 IDEA 里,右键点击“HelloWorld.java”文件,选“Copy Path -> Absolute Path”,复制后打开命令行,用“cd”命令导航到这个路径(比如 Windows 输入 cd D:\HelloWorldApp\src,macOS 输入 cd /Users/你的用户名/HelloWorldApp/src)。

然后输入 javac HelloWorld.java 编译代码——这一步会生成 HelloWorld.class 文件(字节码文件),如果命令行没有报错,就说明编译成功;接着输入 java HelloWorld 运行程序,同样能看到“Hello World!”的输出。

这里要注意:命令行运行时,java 命令后面跟的是类名(HelloWorld),不是文件名(HelloWorld.java),而且不能加 .class 后缀,这是新手常犯的错误;另外要确保命令行里的 JDK 是 Java 8,输入 java -version 确认一下,要是显示其他版本,就检查环境变量是不是配置了 Java 8 的路径。

六、基础常见问题:新手容易踩的坑

刚开始写程序时,难免会遇到问题,这里先整理几个高频基础问题,帮你快速排查。

如果 IDEA 提示“Project SDK is not defined”,说明项目没关联 JDK 8,解决方法是从顶部菜单栏选“File -> Project Structure”,在“Project”选项卡下的“Project SDK”里重新选择 Java 8 的路径,点击“OK”即可。

如果运行后控制台提示“Error: Could not find or load main class HelloWorld”,大概率是类名和文件名不一致(比如类名是 HelloWorld,文件名却写成 helloWorld.java),或者命令行导航的路径不对——先检查文件名是否和类名完全一致(包括大小写),再确认命令行当前路径是不是 src 文件夹下。

如果编译时提示“illegal character: \ufffd”,基本是代码里混入了中文符号(比如用了中文分号、中文括号),解决方法是把代码里的所有符号换成英文的,IDEA 里会用红色波浪线标出错误位置,点击波浪线还会有修复提示。

七、深入理解代码:Hello World 的核心组成

虽然 Hello World 程序简单,但每个部分都有其作用,搞懂这些能帮你打好 Java 基础,后续学习更轻松。

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!"); // 输出问候语}
}

首先是源代码注释,注释会被编译器忽略,但能帮其他程序员理解代码,Java 支持三种注释类型:第一种是“/* 文本 /”,这种注释可以跨多行,比如包裹一段代码的说明;第二种是“/* 文档注释 */”,也叫 doc 注释,除了注释功能,还能被 javadoc 工具识别,自动生成 HTML 格式的文档(比如生成类的说明手册);第三种是“// 单行注释”,从//开始到行尾的内容都会被忽略,适合写简短的代码说明,比如我们代码里的“// 输出问候语”。

然后是类定义,代码里的 public class HelloWorld 就是类的定义——Java 是面向对象的语言,所有代码都必须放在类里。“public”是访问修饰符,表示这个类是公开的,能被其他类访问;“class”是关键字,用来声明类;“HelloWorld”是类名,必须和文件名完全一致(包括大小写),这是 Java 的强制要求,一旦不一致就会编译报错。类的所有代码都放在后面的大括号 {} 里,这是 Java 代码块的基本格式。

最后是main 方法public static void main(String[] args) 是整个程序的入口——不管程序多复杂,JVM 都会从 main 方法开始执行。“public static”是修饰符,“public”保证 main 方法能被 JVM 访问,“static”表示不用创建类的对象就能直接调用;“void”表示方法没有返回值;“main”是方法名,这是 JVM 规定的入口方法名,不能随便改;“String[] args”是方法的参数,是一个字符串数组,用来接收命令行传入的参数(比如运行程序时输入 java HelloWorld arg1,args 数组里就会有“arg1”这个元素),新手暂时用不到这个参数,但必须保留,否则 JVM 找不到入口。

System.out.println("Hello World!") 是输出语句,“System”是 Java 核心库中的类,“out”是 System 类的静态属性,表示标准输出(也就是控制台),“println”是 out 对象的方法,作用是把括号里的内容打印到控制台并换行——这行代码就是我们能看到“Hello World!”输出的关键。

八、问题与练习:巩固 Hello World 知识

理解代码后,可以通过几个问题和练习来检验学习效果,加深对基础的掌握。

问题1:当你编译 Java 程序时,编译器会把人类可读的 .java 源文件转换成 JVM 能理解的平台无关代码,这种代码叫什么?答案其实前面提到过,就是字节码,对应的文件后缀是 .class,这也是 Java 能“一次编写,到处运行”的核心。

问题2:以下哪项不是有效的注释?选项分别是 a. /** 注释 /、b. / 注释 /、c. / 注释 、d. // 注释 。这里要注意,/* 和 / 是成对出现的,选项 c 只有开头的 / 没有结尾的 */,所以是无效的,编译器会报错。

问题3:如果运行时看到“Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorldApp.java”,首先该检查什么?这个错误说明 JVM 找不到要运行的类,大概率是你在运行时误写了文件名(比如输入 java HelloWorldApp.java),正确的应该是输入类名 java HelloWorldApp,所以首先要检查运行命令里是不是多写了 .java 后缀。

问题4:main 方法的正确签名是什么?正确的签名就是 public static void main(String[] args),这里要注意几个点:main 方法名不能错,参数必须是 String 数组(可以写成 String args[],但习惯上用 String[] args),修饰符 public 和 static 的顺序可以换,但一般按 public static 的顺序写。

问题5:声明 main 方法时,哪个修饰符必须放在前面,是 public 还是 static?其实两个修饰符都必须有,但从 JVM 访问的角度看,public 是必须的——如果少了 public,JVM 无法访问 main 方法,会提示“找不到 main 方法”;而少了 static,JVM 无法直接调用,也会报错,所以两个都不能少,但问题问的是“必须放在前面”,其实更核心的是 public,因为它决定了访问权限。

问题6:main 方法定义了哪些参数?就是一个 String 类型的数组,参数名通常是 args(也可以叫其他名字,比如 argv),用来接收命令行传入的参数。

再来看练习1:把 HelloWorldApp.java 程序修改为显示“Hola Mundo!”而不是“Hello World!”。其实很简单,只需要把输出语句里的字符串改成“Hola Mundo!”,也就是把 System.out.println("Hello World!") 改成 System.out.println("Hola Mundo!"),然后重新运行,就能看到新的输出。

练习2:有一个修改版的程序 HelloWorldApp2.java,运行时有错误,该怎么修复?常见的错误可能有几种:比如类名写成了 HelloWorldApp2,但文件名是 HelloWorldApp.java,导致类名和文件名不一致;或者少了 main 方法的某个修饰符(比如漏了 static);又或者输出语句里少了分号——只需要对照正确的 HelloWorld 代码,检查这几处,把不一致的地方改过来,程序就能正常编译运行了。

九、更全面的常见问题:编译器与运行时错误

除了基础问题,编译和运行时还可能遇到其他错误,这里整理更全面的情况,帮你应对更多场景。

编译器问题(不同系统常见错误)

在 Windows 系统上,最常见的错误是“‘javac’ is not recognized as an internal or external command”,这说明 Windows 找不到 javac 编译器。如果 JDK 安装路径是 C:\jdk1.8.0,可以暂时在命令行输入 C:\jdk1.8.0\bin\javac HelloWorldApp.java 来编译,但每次都这样太麻烦,最好的解决方法是配置环境变量,把 JDK 的 bin 目录(比如 C:\jdk1.8.0\bin)添加到系统的 PATH 变量里,具体步骤可以参考 JDK 8 的安装说明,配置后重启命令行就能直接用 javac 命令了。

还有一个错误是“Class names, ‘HelloWorldApp’, are only accepted if annotation processing is explicitly requested”,这是因为编译时忘了加 .java 后缀,比如输入 javac HelloWorldApp 而不是 javac HelloWorldApp.java,只要加上 .java 后缀就能解决。

在 UNIX 或 macOS 系统上,类似的错误是“javac: Command not found”,解决方法和 Windows 类似,暂时可以用 /usr/local/jdk1.8.0/bin/javac HelloWorldApp.java 编译,长期解决则需要把 JDK 的 bin 目录添加到 PATH 变量里,具体步骤根据使用的 shell 不同略有差异,比如 bash shell 可以编辑 ~/.bashrc 文件,添加 export PATH=$PATH:/usr/local/jdk1.8.0/bin,然后执行 source ~/.bashrc 生效。

另外,不管什么系统,都可能遇到语法错误,比如少了分号、括号不匹配等,编译器会提示错误位置(比如“Testing.java:8: error: ‘;’ expected”),只要根据提示找到对应的行,修复语法问题,再重新编译就行。

运行时问题(全系统常见错误)

最常见的运行时错误是“Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorldApp”,这说明 JVM 找不到 .class 文件。首先要检查当前目录是不是 .class 文件所在的目录(比如 src 文件夹),如果不是,用 cd 命令切换过去;如果还是不行,可以尝试清除 CLASSPATH 变量——Windows 输入 set CLASSPATH=,UNIX 或 macOS 输入 unset CLASSPATH,然后再重新运行,如果能成功,就需要重新配置 CLASSPATH 变量,确保 JVM 能找到类文件。

还有一个新手常犯的错误是“Could not find or load main class HelloWorldApp.class”,这是因为运行时误把 .class 文件名当成了类名,比如输入 java HelloWorldApp.class,正确的应该是输入类名 java HelloWorldApp,去掉 .class 后缀就行。

如果看到“Exception in thread “main” java.lang.NoSuchMethodError: main”,说明类里没有正确的 main 方法,可能是方法名写错了(比如写成了 Main),或者少了修饰符(比如漏了 public 或 static),又或者参数不对(比如写成了 String args 而不是 String[] args),只要对照正确的 main 方法签名修改,就能解决。

十、总结:下一步该学什么

完成第一个 Hello World 并解决常见问题后,你已经迈过了 Java 学习的第一道坎。接下来可以试着做一些小修改,比如在输出语句后再加一行 System.out.println("Java 8 入门成功!"),运行后看看控制台会不会显示两行内容;或者尝试用不同的注释类型给代码加说明,熟悉注释的用法。

等你对 Hello World 相关的基础操作熟练后,就可以开始学习 Java 8 的核心语法了——比如变量的定义(怎么声明整数、字符串变量)、基本数据类型(int、String、boolean 等)、运算符(加减乘除、逻辑运算),这些是写复杂程序的基础。而 IntelliJ IDEA 的更多功能,比如代码调试(设置断点、查看变量值)、代码重构(重命名类或方法),可以在后续学习中慢慢探索,不用一开始就掌握所有操作。

记住,Java 8 作为经典的 LTS 版本,不仅资料丰富,而且至今仍是很多企业项目的首选,打好这个版本的基础,后续学习 Java 17、Java 21 等新版本时,会更容易理解版本间的差异和升级点,让整个学习过程更顺畅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98966.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98966.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/98966.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GPT入门】第67课 多模态模型实践: 本地部署文生视频模型和图片推理模型

【GPT入门】第67课 多模态模型实践: 本地部署文生视频模型和图片推理模型1. 文生视频模型CogVideoX-5b 本地部署1.1 模型介绍1.2 环境安装1.3 模型下载1.4 测试2.ollama部署图片推理模型 llama3.2-vision2.1 模型介绍2.2 安装ollama2.3 下载模型2.4 测试模型2.5 测试…

C++初阶(6)类和对象(下)

1. 再谈构造函数(构造函数的2个深入使用技巧) 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 虽然上述构造函数调用之后,对象中已经有了一个初始值,…

容器文件描述符热迁移在云服务器高可用架构的实施标准

在云计算环境中,容器文件描述符热迁移技术正成为保障业务连续性的关键解决方案。本文将深入解析该技术在云服务器高可用架构中的实施标准,涵盖技术原理、实现路径、性能优化等核心维度,为构建稳定可靠的容器化基础设施提供系统化指导。 容器文…

毫米波雷达液位计如何远程监控水位?

引言毫米波雷达液位计作为一种高精度、非接触式的水位监测设备,正逐渐成为智慧水务、环境监测等领域的关键工具。其通过先进的调频连续波(FMCW)技术,实现5mm的测量精度,并支持多种远程通信方式,使用户能够实…

关于 C++ 编程语言常见问题及技术要点的说明

关于 C 编程语言常见问题及技术要点的说明C 作为一门兼具高效性与灵活性的静态编译型编程语言,自 1985 年正式发布以来,始终在系统开发、游戏引擎、嵌入式设备、高性能计算等领域占据核心地位。随着 C 标准(如 C11、C17、C20)的持…

【Qt QSS样式设置】

Qt中的QSS样式设置流程 Qt Style Sheets (QSS) 是Qt框架中用于自定义控件外观的样式表语言,其语法类似于CSS。以下是QSS的设置流程和示例。 QSS设置流程 1. 创建QSS样式表文件或字符串 首先,需要创建QSS样式表,可以是一个单独的.qss文件&…

使用 Apollo TransformWrapper 生成相机到各坐标系的变换矩阵

使用 Apollo TransformWrapper 生成相机到各坐标系的变换矩阵一、背景二、原理1、什么是变换矩阵?2、为什么需要变换矩阵?3、Apollo 中的坐标系4、Apollo TransformWrapper三、操作步骤1. 设置车辆参数2. 启动静态变换发布3. 查看变换信息4. 播放记录数据…

硬件(十)IMX6ULL 中断与时钟配置

一、OCP 原则(开闭原则)对代码扩展是开放的,允许通过新增代码来扩展功能;对代码的修改是关闭的,尽量避免直接修改已有稳定运行的代码,以此保障代码的稳定性与可维护性。二、中断处理(一&#xf…

打工人日报#20250913

打工人日报#20250913 周六,回杭州了,这边居然下雨。 阅读 《小米创业思考》 第七章 技术为本 其中的技术介绍算是比较详细的,架构也很清晰,有一种对自己家产品如数家珍的感觉,对于架构也是经常思考的感觉感恩 和namwei…

【面试题】RAG核心痛点

1. 文档切分粒度不好把控,既担心噪声太多又担心语义信息丢失 这是一个经典难题。切分粒度过大,单个chunk包含过多无关信息(噪声),会干扰LLM理解核心内容;切分过小,则可能割裂句子或段落的完整语…

网络安全与iptables防火墙配置

iptables基本概念iptables是Linux系统中强大的防火墙工具,它工作在用户空间,通过命令行界面与内核空间的netfilter框架交互,实现数据包过滤、网络地址转换(NAT)等功能。Web服务器防火墙配置实例以下是针对Web服务器的iptables配置步骤&#x…

qt中给QListWidget添加上下文菜单(快捷菜单)

步骤 添加customContextMenuRequested信号的槽函数,添加后,在QListWidget上单击右键,无法响应,还必须执行下面操作;设置QListWidget上下文菜单策略为Qt::CustomContextMenu 如下:

一款好看的jQuery前端框架-HisUI

HisUI:一款基于EasyUI的前端组件类库,让web开发更迅速、简单。 HisUI官网文档

【Docker】P3 入门指南:运维与开发双重视角

目录Docker入门:运维与开发运维视角Docker 架构概述Docker 镜像镜像概念理解查看和管理镜像拉取镜像镜像标识容器管理启动容器容器内操作容器的后台运行多容器管理重新进入运行中的容器容器生命周期管理开发视角容器化思维示例:基于 Nginx 镜像构建简单 …

第六届大数据、人工智能与物联网工程国际会议(ICBAIE 2025)

重要信息 时间:2025年10月17-19日 地点:中国上海 官网:www.icbaie.net 征稿主题 1. 大数据与云计算 2. 人工智能技术与应用 3. 机器人科学与工程 4. 物联网与传感器技术 5. 其他 大数据、人工智能与物联网 引言 在数字化转型的时代…

Docker存储卷(Volume)核心概念、类型与操作指南

文章目录一、存储卷概念二、存储卷分类2.1 管理卷2.2 绑定数据卷2.3 临时数据卷三、MySQL灾难恢复四、存储卷的局限性一、存储卷概念 什么是存储卷?   Docker 存储卷 是 Docker 容器中用于持久化存储数据的独立文件系统区域。它独立于容器的联合文件系统&#xf…

Electron 原生模块集成:使用 N-API

引言:原生模块集成在 Electron 开发中的 N-API 核心作用与必要性 在 Electron 框架的扩展开发中,原生模块集成是提升应用性能和功能边界的关键技术,特别是使用 N-API(Node-API)编写和集成 C 原生模块,更是 …

android组包时会把从maven私服获取的包下载到本地吗

Android项目在构建(组包)时,Gradle会自动将从Maven私服(或任何配置的仓库)获取的依赖包(AAR、JAR等)下载到本地的Gradle缓存目录中。 下面详细解释这个过程和相关的概念: 详细过程声…

【应用笔记】构建具有增强识别、防欺骗和说话人识别功能的高级语音用户界面--瑞萨电子

Suad Jusuf(Director Product Marketing and Strategy, Renesas AI Center of Excellence):语音用户界面(VUI)正在彻底改变我们与技术交互的方式,实现免提、无缝的通信。通过整合先进语音命令识别功能&…

DAY 26 函数专题1:函数定义与参数-2025.9.13

DAY 26 函数专题1:函数定义与参数 知识点回顾: 函数的定义变量作用域:局部变量和全局变量函数的参数类型:位置参数、默认参数、不定参数传递参数的手段:关键词参数传递参数的顺序:同时出现三种参数类型时…