用 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 等新版本時,會更容易理解版本間的差異和升級點,讓整個學習過程更順暢。