目录
- 前提条件:你必须先安装 Java
- 使用命令行(最基础,理解原理)
- 1 编译单个
.java文件 - 2 运行单个
.class文件 - 3 编译和运行多个文件(需要包结构)
- 4 管理依赖:
javac和java的局限性
- 1 编译单个
- 使用集成开发环境 - Eclipse(经典选择)
- 使用集成开发环境 - IntelliJ IDEA(目前最流行)
- 使用构建工具 - Maven/Gradle(现代标准)
- 1 Maven 项目结构
- 2 Maven 常用命令
- 3 在 IDE 中导入 Maven 项目
- Web 项目的运行(打包成 WAR/EAR 部署到服务器)
- 总结与建议
前提条件:你必须先安装 Java
在运行任何 Java 代码之前,你的电脑上必须安装 Java 开发工具包,你可以通过以下命令检查是否已安装:
- Windows:
java -version javac -version
- macOS / Linux:
java -version javac -version
如果看到版本号(如 java version "17.0.2"),说明已安装,如果提示“不是内部或外部命令...”,说明环境变量未配置正确,需要先安装 JDK 并配置 JAVA_HOME 和 Path 环境变量。
方式一:使用命令行(最基础,理解原理)
这种方式能帮助你理解 Java 代码从源文件到运行的完整过程。
假设我们有一个简单的项目结构:
my-project/
├── src/
│ └── com/
│ └── example/
│ └── HelloWorld.java
└── lib/
1 编译单个 .java 文件
如果你只有一个 HelloWorld.java 文件,可以直接在文件所在目录编译:
# 编译 HelloWorld.java,生成 HelloWorld.class 文件 javac HelloWorld.java
2 运行单个 .class 文件
编译成功后,运行生成的字节码文件:
# 运行 HelloWorld.class java HelloWorld
注意: 运行时只写 类名,不要加 .class 后缀,也不要写路径(除非在特定目录下)。
3 编译和运行多个文件(需要包结构)
对于上面的项目结构,HelloWorld.java 文件内容如下:
// src/com/example/HelloWorld.java
package com.example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World from command line!");
}
}
编译:
你需要告诉 javac 去哪里找源文件,-d 参数指定编译后的 .class 文件输出目录。
# 从项目根目录执行 # -d . 表示将编译后的文件按照包结构输出到当前目录 # -sourcepath src 表示源文件在 src 目录下 javac -d . -sourcepath src src/com/example/HelloWorld.java
执行后,会生成如下目录结构:
my-project/
├── com/
│ └── example/
│ └── HelloWorld.class
└── src/
└── com/
└── example/
└── HelloWorld.java
运行:
因为 HelloWorld 类在 com.example 包中,所以运行时需要带上完整的包名。
# 从项目根目录(包含 com 目录的父目录)执行 java com.example.HelloWorld
4 管理依赖:javac 和 java 的局限性
如果你的项目需要引用第三方库(比如一个 mysql-connector.jar),命令行方式会变得非常麻烦。
你需要手动:
- 下载
.jar文件。 - 在编译时,用
-cp(classpath) 参数告诉javac去哪里找依赖。 - 在运行时,同样用
-cp参数告诉java去哪里找依赖。
示例:
假设 mysql-connector.jar 在 lib 目录下。
# 编译,需要包含 lib 目录下的 jar javac -d . -sourcepath src -cp "lib/*" src/com/example/DatabaseApp.java # 运行,同样需要包含 lib 目录下的 jar java -cp ".;lib/*" com.example.DatabaseApp
- Windows 的 classpath 分号是 。
- macOS / Linux 的 classpath 分号是 。
这种方式非常繁琐,容易出错,因此只适用于非常简单的学习示例。实际开发中,我们几乎不会直接使用 javac 和 java 命令来管理项目。
方式二:使用集成开发环境 - Eclipse
Eclipse 是一个非常经典且免费的 Java IDE。
-
导入项目:
- 如果你已有项目文件夹,选择
File -> Import -> Existing Projects into Workspace。 - 如果项目是 Maven 项目,选择
Maven -> Existing Maven Projects。
- 如果你已有项目文件夹,选择
-
运行:
- 在代码编辑器中,找到
main方法。 - 右键点击
main方法,选择Run As -> Java Application。 - 或者,在项目资源管理器中右键点击项目,选择
Run As -> Java Application。
- 在代码编辑器中,找到
Eclipse 会自动处理编译、依赖管理和运行过程,非常方便。
方式三:使用集成开发环境 - IntelliJ IDEA
IntelliJ IDEA(社区版免费)是目前最受欢迎的 Java IDE,尤其在 Spring Boot 等现代框架生态中。
-
打开项目:
- 选择
File -> Open,然后选择你的项目根目录(通常是包含pom.xml或build.gradle文件的目录)。 - IDEA 非常智能,会自动识别项目类型(Maven/Gradle/普通 Java 项目)。
- 选择
-
运行:
- 在代码编辑器中,找到
main方法。 - 点击方法左侧的绿色 ▶️ (Run) 按钮。
- 或者,右键点击
main方法,选择Run 'main()'。 - 第一次运行时,IDEA 会自动下载所需的依赖(Maven/Gradle),并配置好运行环境。
- 在代码编辑器中,找到
IntelliJ IDEA 的优势:
- 强大的代码提示和重构功能。
- 内置的、性能卓越的 Maven/Gradle 支持。
- 与 Spring Boot 等框架无缝集成。
- 统一的用户界面(社区版和终极版体验一致)。
方式四:使用构建工具 - Maven/Gradle(现代标准)
对于任何非 trivial(非玩具)的 Java 项目,都应该使用构建工具,它们是项目管理的核心,负责:
- 依赖管理: 自动下载和管理项目所需的所有库。
- 编译代码: 按照正确的顺序编译所有源文件。
- 打包: 将编译后的代码和依赖打包成一个可分发的文件(如
.jar,.war)。 - 运行测试: 自动执行单元测试和集成测试。
- 生成文档: 生成项目文档。
1 Maven 项目结构
一个标准的 Maven 项目遵循固定的目录结构:
my-app/
├── pom.xml <!-- 项目核心配置文件 -->
├── src/
│ ├── main/
│ │ ├── java/ <!-- Java 源代码 -->
│ │ └── resources/ <!-- 配置文件、图片等 -->
│ └── test/
│ ├── java/ <!-- 测试代码 -->
│ └── resources/ <!-- 测试资源 -->
└── target/ <!-- 编译和打包后的输出目录 (自动生成) -->
2 Maven 常用命令
在项目根目录(有 pom.xml 的地方)打开终端,运行 Maven 命令:
- 编译:
mvn compile- 只编译
src/main/java下的代码,输出到target/classes。
- 只编译
- 测试:
mvn test- 编译代码并运行
src/test/java下的所有测试。
- 编译代码并运行
- 打包:
mvn package- 编译、测试、打包,生成一个
.jar或.war文件在target目录下,这是最常见的命令。
- 编译、测试、打包,生成一个
- 安装到本地仓库:
mvn install- 执行
package的所有步骤,并将打包好的文件安装到你本地的 Maven 仓库中,这样其他项目就可以像引用远程库一样引用它。
- 执行
3 在 IDE 中导入 Maven 项目
无论是 Eclipse 还是 IntelliJ IDEA,导入 Maven 项目都极其简单:
- Eclipse:
File -> Import -> Maven -> Existing Maven Projects。 - IntelliJ IDEA:
File -> Open,然后选择项目根目录。
IDE 会自动读取 pom.xml 文件,下载所有依赖,并设置好项目结构,之后你就可以像上面描述的那样,通过点击按钮轻松运行了。
方式五:Web 项目的运行(打包成 WAR/EAR 部署到服务器)
如果你的项目是一个 Web 应用(使用 Spring MVC, Jakarta EE),它通常会被打包成 WAR (Web Application Archive) 文件。
运行这样的项目,不是直接用 java 命令,而是需要将其部署到一个 Web 服务器或应用服务器上。
-
打包: 使用 Maven (
mvn package) 或 Gradle (gradle build) 命令,生成一个.war文件,my-webapp-1.0.war。 -
部署: 将生成的
.war文件复制到服务器的特定目录下。- Tomcat: 将
.war文件放入$TOMCAT_HOME/webapps/目录,Tomcat 会自动检测并部署它。 - Jetty: 将
.war文件放入$JETTY_HOME/webapps/目录。 - WildFly / JBoss: 将
.war文件放入$WILDFLY_HOME/standalone/deployments/目录。
- Tomcat: 将
-
访问: 部署成功后,你就可以通过浏览器访问你的应用了,
http://localhost:8080/my-webapp-1.0/。
对于现代的 Spring Boot 项目,情况更简单,它默认会打包成一个可执行的 JAR 文件,内置了 Web 服务器(如 Tomcat)。
- 打包:
mvn package(或使用 IDE 的构建功能),生成my-springboot-app-0.0.1-SNAPSHOT.jar。 - 运行: 直接使用
java命令运行这个 JAR 文件。java -jar target/my-springboot-app-0.0.1-SNAPSHOT.jar
然后就可以在浏览器中访问
http://localhost:8080了。
总结与建议
| 场景 | 推荐方式 | 理由 |
|---|---|---|
| 初学者学习 Java 基础语法 | 命令行 (javac/java) |
理解编译和运行的底层原理,打好基础。 |
| 学生课程作业 / 小型个人项目 | IntelliJ IDEA / Eclipse | 提高开发效率,自动处理编译和依赖,代码提示友好。 |
| 企业级 / 商业项目 / 团队协作 | Maven/Gradle + IntelliJ IDEA/Eclipse | 构建工具是现代 Java 开发的基石,用于管理复杂依赖和构建流程。 |
| 开发 Web 应用 (传统) | Maven/Gradle + 打包成 WAR + 部署到 Tomcat/Jetty | 行业标准,将应用与服务器解耦。 |
| 开发 Web 应用 (现代,如 Spring Boot) | Spring Boot + Maven/Gradle + 打包成可执行 JAR | 简化部署,开箱即用,是目前的主流趋势。 |
给新手的最终建议:
- 先装好 JDK,配置好环境变量。
- 下载并安装 IntelliJ IDEA (Community Edition)。
- 从创建一个最简单的 Maven 项目开始,学习
pom.xml的基本结构。 - 在 IDEA 中编写代码,然后通过点击绿色的运行按钮来运行它。
- 逐步学习 Maven 如何管理依赖,这是你从一个新手迈向专业开发者的关键一步。
