Java程序的运行需要经过编译和解释执行两个阶段,除了使用IDE工具之外,通过命令行完成这两个操作也是非常基础且重要的技能,能够帮助我们更清晰地理解Java程序的运行原理。

一、前置准备:配置Java环境变量
要使用命令行编译运行Java程序,首先需要确保本地已经安装JDK,并且正确配置了环境变量,具体步骤如下:
- 下载并安装对应系统的JDK安装包,安装完成后记住JDK的安装路径,比如Windows系统下默认路径为
C:Program FilesJavajdk-17 - 配置系统环境变量,新建
JAVA_HOME变量,值为JDK的安装路径 - 在系统变量
Path中添加%JAVA_HOME%bin,保存后打开新的命令行窗口验证配置是否生效
打开命令行窗口,输入以下命令验证:
java -version javac -version
如果能够正确输出Java和javac的版本信息,说明环境变量配置成功。
二、编写简单的Java源程序
我们先编写一个简单的HelloWorld程序作为示例,在本地新建一个文本文件,命名为HelloWorld.java,注意文件名必须和类名完全一致,内容如下:
// 定义公开类HelloWorld,类名必须和文件名一致
public class HelloWorld {
// 程序入口main方法
public static void main(String[] args) {
// 输出打印内容
System.out.println("Hello, Java Command Line!");
}
}
将文件保存到自定义的目录中,比如保存到D:java_demo目录下。
三、命令行编译Java程序
编译Java程序需要使用javac命令,该命令会将.java源文件编译为.class字节码文件,具体操作步骤如下:
- 打开命令行窗口,切换到
HelloWorld.java所在的目录:cd D:java_demo
- 执行编译命令:
javac HelloWorld.java
如果源程序没有语法错误,执行命令后不会输出任何内容,此时在D:java_demo目录下会生成一个HelloWorld.class文件,这就是编译后的字节码文件。
如果源程序存在语法错误,命令行会输出对应的错误信息,比如拼写错误、缺少分号等,根据提示修改源文件后重新执行编译命令即可。
四、命令行运行Java程序
编译生成.class文件后,就可以使用java命令运行程序,注意运行的时候不需要加.class后缀,具体命令如下:
java HelloWorld
执行后命令行会输出Hello, Java Command Line!,说明程序运行成功。
五、带包名的Java程序编译运行
实际开发中Java程序通常会带有包名,比如我们定义一个包为com.demo的程序,源文件内容如下:
// 声明包名
package com.demo;
public class Test {
public static void main(String[] args) {
System.out.println("This is a program with package.");
}
}
此时保存文件的时候需要按照包名的结构创建目录,比如将Test.java保存到D:java_democomdemo目录下,编译的时候需要指定源文件的完整路径,或者切换到com目录的上层目录执行编译:
cd D:java_demo javac comdemoTest.java
编译后会在comdemo目录下生成Test.class文件,运行的时候需要带上完整的包名:
java com.demo.Test
执行后会输出对应的内容。
六、常见问题及解决方法
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 输入javac提示不是内部或外部命令 | JDK环境变量配置错误 | 重新检查JAVA_HOME和Path变量配置,确保bin目录在Path中,重启命令行窗口 |
| 编译提示找不到文件 | 命令行当前目录和源文件所在目录不一致,或者文件名拼写错误 | 切换到源文件所在目录,检查文件名是否和类名一致,注意大小写 |
| 运行提示找不到或无法加载主类 | 运行的时候加了.class后缀,或者类路径配置错误 | 运行命令去掉.class后缀,带包名的程序要带上完整包名 |
七、总结
通过命令行编译运行Java程序的核心就是掌握javac编译命令和java运行命令的使用,同时要注意文件名和类名一致、包名和目录结构对应这些细节。熟练使用命令行操作Java程序,能够帮助我们更好地理解Java的跨平台特性和运行原理,也为后续学习更复杂的Java开发知识打下基础。