命令行使用Java是Java开发中的基础技能,掌握命令行操作不仅能加深对Java程序运行机制的理解,还能在没有集成开发环境(IDE)的情况下快速编译和运行代码,以下是详细的操作指南,包括环境配置、编译运行、常用命令及注意事项等内容。

Java环境配置
在命令行中使用Java前,需确保系统已安装Java开发工具包(JDK)并配置环境变量,具体步骤如下:
- 安装JDK:从Oracle官网或OpenJDK下载对应操作系统的JDK版本,安装时记住安装路径(如
C:\Program Files\Java\jdk-17
)。 - 配置环境变量:
- Windows系统:在“系统属性”中新建系统变量
JAVA_HOME
,值为JDK安装路径;在Path
变量中添加%JAVA_HOME%\bin
。 - Linux/macOS系统:在
~/.bashrc
或~/.zshrc
文件中添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH
保存后执行
source ~/.bashrc
(或对应shell配置文件)使配置生效。
- Windows系统:在“系统属性”中新建系统变量
- 验证安装:打开命令行工具,输入
java -version
和javac -version
,若显示版本号则表示配置成功。
编译与运行Java程序
Java程序的执行分为编译(.java
→.class
)和运行(.class
→执行结果)两个步骤。
- 编写源代码:使用文本编辑器创建
HelloWorld.java
如下:public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Command Line!"); } }
- 编译代码:在命令行中进入文件所在目录,执行:
javac HelloWorld.java
成功后会生成
HelloWorld.class
文件(字节码文件)。(图片来源网络,侵删) - 运行程序:执行以下命令:
java HelloWorld
注意:运行时不需要加
.class
后缀,命令会自动加载HelloWorld.class
文件并执行main
方法。
命令行常用参数与选项
Java命令行工具提供丰富的参数,用于调试、优化和配置运行环境,以下是常用命令的对比说明:
命令 | 功能描述 | 示例 |
---|---|---|
java -version |
查看Java版本信息 | java -version |
javac -version |
查看Java编译器版本 | javac -version |
java -cp |
指定类路径(加载.class 文件的目录) |
java -cp ./classes HelloWorld |
java -jar |
运行可执行的JAR文件 | java -app.jar |
java -Xms -Xmx |
设置JVM初始堆内存(-Xms )和最大堆内存(-Xmx ) |
java -Xms256m -Xmx512m HelloWorld |
java -verbose |
输出类加载、垃圾回收等详细信息 | java -verbose HelloWorld |
javac -d |
指定编译后.class 文件的输出目录 |
javac -d ./src HelloWorld.java |
高级操作与技巧
- 处理中文乱码:编译时指定字符集,如
javac -encoding UTF-8 HelloWorld.java
。 - 运行带包名的类:若类位于
com.example
包下,需先编译到对应目录结构,并通过-cp
指定路径:javac -d . com/example/HelloWorld.java java com.example.HelloWorld
- 生成JAR文件:使用
jar
命令打包:jar cvf app.jar com/example/*.class
并在
MANIFEST.MF
中指定主类(Main-Class: com.example.HelloWorld
),通过java -jar app.jar
运行。 - 调试模式:使用
-agentlib
或-Xdebug
参数结合JDWP协议进行远程调试。
常见问题与解决方案
'javac'不是内部或外部命令
:检查JAVA_HOME
和Path
变量是否配置正确。ClassNotFoundException
:确认-cp
参数指定的路径包含.class
文件,或类名与包名匹配。
相关问答FAQs
Q1: 为什么运行Java程序时提示“错误:找不到或无法加载主类”?
A1: 通常由以下原因导致:(1)类名与文件名不匹配(如文件名为HelloWorld.java
,类名需为public class HelloWorld
);(2)未进入.class
文件所在目录;(3)使用java
命令时误加了.class
后缀,可通过检查文件结构、确认目录路径和修正命令格式解决。

Q2: 如何在命令行中查看JVM的内存使用情况?
A2: 可结合jps
和jstat
命令实现,首先通过jps
查看Java进程ID(如1234),然后执行jstat -gcutil 1234 1s
,每秒打印一次GC内存使用率(包括老年代、新生代等区域)。