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

第 2 篇:Java 入门实战(JDK8 版)—— 编写第一个 Java 程序,理解基础运行逻辑

用 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://bBgD90ye.nzqqd.cn
http://r1ZN3Erc.nzqqd.cn
http://JQkuvUVX.nzqqd.cn
http://mqjF8ndW.nzqqd.cn
http://Ha1r60gX.nzqqd.cn
http://Y2o97bkf.nzqqd.cn
http://b3yynN5w.nzqqd.cn
http://1cRM2zHq.nzqqd.cn
http://tAMM6YZK.nzqqd.cn
http://810WZG7m.nzqqd.cn
http://muMxnDmc.nzqqd.cn
http://o9ti9Lan.nzqqd.cn
http://gfJGa4S5.nzqqd.cn
http://SwmTdxUa.nzqqd.cn
http://OeddMsvt.nzqqd.cn
http://7AfnfjQs.nzqqd.cn
http://UZEWeJNk.nzqqd.cn
http://wpGmSaYp.nzqqd.cn
http://f4RcDZkx.nzqqd.cn
http://JkFfIqH4.nzqqd.cn
http://UKJjbGIW.nzqqd.cn
http://g0UUxDSy.nzqqd.cn
http://PeSvbpAD.nzqqd.cn
http://qgNAZUTR.nzqqd.cn
http://WwITc7K1.nzqqd.cn
http://QK7uo6n4.nzqqd.cn
http://nOeElwxt.nzqqd.cn
http://YtxehUia.nzqqd.cn
http://35bX82be.nzqqd.cn
http://WdsIJ3aS.nzqqd.cn
http://www.dtcms.com/a/378108.html

相关文章:

  • 人工智能深度学习——多层感知器(神经网络)
  • 【RelayMQ】基于 Java 实现轻量级消息队列(七)
  • 从任意Git服务迁移仓库
  • OpenCV:图像透视变换
  • 小程序原生实现音频播放器,下一首上一首切换,拖动进度条等功能
  • 前端查询条件是“0”几的时候查不到
  • openCV高阶操作之金字塔操作与直方图分析
  • 班级互动小程序(Python)
  • MongoDB面试集锦
  • 【JavaSE四天速通|第二篇】面向对象高级篇
  • 详细介绍一下 ​JSF(JavaServer Faces)
  • SpringCloud微服务网关Gateway
  • 跟做springboot尚品甄选项目(二)
  • 基于Mysql+SpringBoot+vue框架-大创管理系统源码
  • fastapi文档
  • vim指令
  • 【源码剖析】4-生产者-KafkaProducer分析
  • 事务方案选型全景图:金融与电商场景的实战差异与落地指南
  • 基于LSTM与3秒级Tick数据的金融时间序列预测实现
  • 第3节-使用表格数据-主键
  • 【C++练习】14.C++统计字符串中字母、数字、空格和其他字符的个数
  • ES6笔记5
  • 协议_https协议
  • 深入 Linux 文件系统:从数据存储到万物皆文件
  • 第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(1 、求十位数字)
  • CSS 属性概述
  • Ascend310B重构驱动run包
  • 碎片化采购是座金矿:数字化正重构电子元器件分销的价值链
  • 如何配置capacitor 打包的ios app固定竖屏展示?
  • 解锁Roo Code的强大功能:深入理解上下文提及(Context Mentions)