上一篇
如何在命令行编译Java
- 后端开发
- 2025-06-28
- 9
使用javac命令编译Java源文件, javac HelloWorld.java,成功编译后生成.class字节码文件,再通过 java HelloWorld运行程序,注意文件名需与类名一致。
准备工作:安装JDK并配置环境变量
-
下载JDK
访问Oracle官网或OpenJDK,下载与操作系统匹配的JDK版本(推荐JDK 11+)。
-
配置环境变量
- Windows
- 安装JDK后,打开控制面板 > 系统 > 高级系统设置 > 环境变量。
- 在系统变量中新建:
- 变量名:JAVA_HOME
- 变量值:JDK安装路径(如C:Program FilesJavajdk-21)
- 编辑Path变量,新增两项:
- %JAVA_HOME%bin
- %JAVA_HOME%jrebin
- macOS/Linux
编辑~/.bashrc或~/.zshrc文件,添加: export JAVA_HOME=/usr/lib/jvm/jdk-21 # 替换为实际路径 export PATH=$JAVA_HOME/bin:$PATH
执行source ~/.bashrc使配置生效。
- Windows
-
验证安装
打开命令行,输入以下命令:
java -version javac -version若显示版本号(如java 21.0.1),则配置成功。
编译并运行Java程序
示例1:基础单文件程序
-
编写Java代码
创建文件HelloWorld.java如下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Command Line!"); } } -
编译程序
打开命令行,进入文件所在目录,执行:
javac HelloWorld.java- 成功后会生成HelloWorld.class字节码文件。
- 关键选项:
- -d <目录>:指定输出目录(如javac -d ./out HelloWorld.java)。
- -encoding UTF-8:指定源码编码(避免中文乱码)。
-
运行程序
java HelloWorld输出结果:Hello, Command Line!
示例2:带包名的程序
-
编写带包结构的代码
创建文件com/example/Main.java如下:
package com.example; public class Main { public static void main(String[] args) { System.out.println("Running with package!"); } } -
编译与运行
- 编译: javac com/example/Main.java
生成com/example/Main.class。
- 运行(需从根目录执行): java com.example.Main
- 编译: javac com/example/Main.java
示例3:编译多个文件
假设有两个文件:
- Utils.java(工具类)
- App.java(主类,依赖Utils)
# 编译所有.java文件 javac *.java # 或指定文件 javac Utils.java App.java
常见问题解决
-
javac 未找到或不是内部命令
- 原因:环境变量配置错误。
- 解决:重新检查JAVA_HOME和Path配置。
-
找不到主类(Error: Could not find or load main class)
- 原因:
- 类名拼写错误。
- 未从包结构的根目录运行。
- .class文件不在当前目录。
- 解决:
- 使用-classpath指定路径:java -cp ./out com.example.Main。
- 原因:
-
中文乱码
- 编译时指定编码: javac -encoding UTF-8 HelloWorld.java
高级技巧
-
使用-classpath管理依赖
编译时指定外部JAR:
javac -cp libs/gson.jar MyApp.java -
生成文档(Javadoc)
javadoc -d docs HelloWorld.java
- 命令行编译是理解Java构建过程的核心,尤其适用于自动化脚本或服务器环境。
- 对于复杂项目,建议使用构建工具(如Maven或Gradle)管理依赖和编译流程。
- 始终验证环境变量配置,这是成功编译的前提。
引用说明参考Oracle官方文档Java SE开发指南及OpenJDK社区实践,环境变量配置部分遵循各操作系统标准规范。