JDK自带命令行工具可完成编译、运行、打包、调试等全流程操作:javac编译.java为.class;java运行.class或-jar执行JAR包;jar打包归档;jdb配合-g参数调试;jps查看Java进程。

你需要在命令行中快速编译一个Java文件、运行打包好的JAR、生成API文档,或排查某个Java进程卡死的问题——这些操作全部依赖JDK自带的命令行工具,而它们就藏在你安装目录的bin文件夹里,不需要额外下载。
编译Java源文件:javac最常用用法
第一步:打开终端(Windows用CMD/PowerShell,macOS/Linux用Terminal),进入HelloWorld.java所在目录。
第二步:执行javac HelloWorld.java。这一步会生成同名.class文件,【文件名必须与public类名完全一致,且区分大小写】,否则报错“class HelloWorld is public, should be declared in a file named HelloWorld.java”。
第三步:若源码含中文注释或字符串,且编辑器保存为UTF-8编码,直接运行javac会报“错误: 编码GBK的不可映射字符”。此时需显式指定编码:javac -encoding UTF-8 HelloWorld.java。
这一步操作起来很简单,直接把文件拖进去就行。
运行编译后的程序:java命令核心规则
方法一:运行单个.class文件
确保当前目录下有HelloWorld.class,执行java HelloWorld。注意:【不要加.class后缀】,否则提示“错误: 找不到或无法加载主类 HelloWorld.class”。
方法二:运行可执行JAR包
执行java -jar myapp.jar。前提是JAR包MANIFEST.MF中已声明Main-Class: com.example.Main,否则报“no main manifest attribute”。
方法三:指定类路径运行
当.class文件不在当前目录,或依赖外部库时,用-cp参数:java -cp ".;lib/commons-lang3.jar" com.example.Main(Windows用分号;macOS/Linux用冒号)。
打包成JAR:jar命令高频组合
创建基础JAR包:jar cf app.jar *.class。其中c表示create,f表示file,后面紧跟JAR文件名。
创建可执行JAR包:jar cfe app.jar com.example.Main *.class。e参数直接指定入口类,比手动编辑MANIFEST.MF更省事。
查看JAR内容:jar tf app.jar。t表示list,f表示file,输出所有归档内文件路径,不展开压缩结构。
解压JAR包:jar xf app.jar。x表示extract,解压到当前目录,覆盖同名文件前无提示,【操作不可逆,请先备份】。
调试与诊断:jdb和jps实战用法
jdb调试需两步配合:先用javac -g HelloWorld.java编译(-g保留调试信息),再执行jdb HelloWorld启动调试器。
在jdb交互界面中输入run开始执行,stop at HelloWorld:5在第5行设断点,step单步步入,print varName查看变量值。
jps命令直接列出所有Java进程:jps -l显示完整主类名或JAR路径,jps -m追加输出main方法参数,排查多个Spring Boot应用时能一眼区分端口或配置差异。


















