必须掌握JDK自带命令行工具,安装JDK并配置环境变量是前提:下载JDK 17/21 LTS版本,安装时勾选“Add to PATH”和“Set JAVA_HOME”,再用java -version和javac -version验证。

要让Java代码从编辑器里跑起来、打包成可分发文件、生成文档或调试逻辑,必须掌握JDK自带的一系列命令行工具——它们不是可选插件,而是编译、运行、诊断的底层支撑。
安装 JDK 并配置基础环境变量
第一步:访问 Oracle 官网或 Adoptium(Eclipse Temurin)下载页面,选择 Windows x64 Installer(.exe 格式),优先选用 JDK 17 或 JDK 21 LTS 版本。
第二步:双击安装包,勾选「Add to PATH」和「Set JAVA_HOME variable」两项——【这是免去后续手动配置的关键一步】,安装路径务必避开中文与空格,例如 D:\Java\jdk-21.0.3+12。
第三步:打开新打开的命令提示符(不是已打开的旧窗口),执行 java -version 和 javac -version。若两行均输出版本号(如 “21.0.3”),说明安装与环境变量生效。
立即学习“Java免费学习笔记(深入)”;
用 javac 编译 Java 源文件
方法一:基础编译
进入含 HelloWorld.java 的目录,执行 javac HelloWorld.java。成功后生成同名 .class 文件,无任何输出即为正常。
方法二:指定输出目录
执行 javac -d out src/HelloWorld.java,将字节码输出到 out 目录下。这一步避免 class 文件和源码混在一起,是中大型项目必备操作。
方法三:编译多个文件并关联依赖
当项目含多个 .java 文件且存在跨包引用时,需用 -cp 参数指定类路径:javac -cp lib/some.jar -d bin src/com/example/Main.java。漏掉 -cp 会导致 “cannot find symbol” 错误。
用 java 命令运行已编译类
第一步:确保当前目录下有 HelloWorld.class(或在 -cp 指定路径中存在该类)。
第二步:执行 java HelloWorld(不加 .class 后缀)。JVM 会自动加载并执行 public static void main(String[]) 方法。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
第三步:若类在包中(如 package com.example;),则必须在包根目录下运行:java com.example.HelloWorld。在错误目录下执行会报错 “NoClassDefFoundError”。
用 jar 打包与运行可执行归档
方法一:创建普通 JAR 包
执行 jar cvf app.jar *.class,生成包含所有 .class 文件的压缩包。c 表示创建,v 显示详细过程,f 指定文件名。
方法二:生成可直接运行的 JAR
先写好 MANIFEST.MF 文件,内容含 Main-Class: com.example.Launcher;再执行 jar cvfm app.jar MANIFEST.MF *.class。缺少 Main-Class 声明,java -jar app.jar 将报错 “no main manifest attribute”。
方法三:解压查看 JAR 内容
执行 jar tf app.jar 列出所有条目;jar xf app.jar 解压全部文件。注意:jar xf 不会覆盖同名文件,也不会提示冲突。
用 javadoc 从源码注释生成 API 文档
执行 javadoc -d docs -encoding UTF-8 -charset UTF-8 src/com/example/*.java。-d 指定输出目录,编码参数必须显式声明,否则中文注释会乱码变成方块或问号。
生成的 docs/index.html 是入口页,点击类名可跳转至完整方法说明。若源码中没写 /** ... */ 形式注释,生成的 HTML 中对应内容为空白。
用 jdb 进行基础断点调试
第一步:编译时加入调试信息,执行 javac -g HelloWorld.java。
第二步:启动调试器,执行 jdb HelloWorld。
第三步:在 main 方法第一行设断点,输入 stop in HelloWorld.main;再输入 run 启动程序,执行会停在断点处。
第四步:用 step 单步执行,locals 查看局部变量,print 变量名 输出值。jdb 不支持鼠标点击或图形界面,全靠命令驱动。

















