javac 文件名.java
编译生成.class文件,再用java 类名
执行程序(不带后缀),确保环境变量配置正确。要使用命令提示符运行Java程序,需确保正确安装JDK并配置环境变量,以下是详细步骤:
前期准备
-
安装JDK
- 访问Oracle官网下载最新JDK(推荐JDK 17+)
- 安装时记录安装路径(如
C:Program FilesJavajdk-21
)
-
配置环境变量
- 右键”此电脑” → 属性 → 高级系统设置 → 环境变量
- 新建系统变量:
变量名:JAVA_HOME 变量值:C:Program FilesJavajdk-21(替换为你的JDK路径)
- 编辑
Path
变量 → 新建两条记录:%JAVA_HOME%bin %JAVA_HOME%jrebin
-
验证安装
打开命令提示符(Win+R输入cmd
),执行:java -version javac -version
若显示版本号(如
java 21.0.2
),则配置成功。
运行Java程序步骤
示例程序准备
- 新建文本文件
HelloWorld.java
,输入代码:public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Command Line!"); } }
- 保存到指定目录(如
D:java_project
)
▶ 操作流程
-
打开命令提示符
- 按
Win+R
输入cmd
- 或直接在资源管理器地址栏输入
cmd
回车
- 按
-
导航到程序目录
D: # 切换磁盘 cd java_project # 进入程序目录
-
编译Java文件
javac HelloWorld.java
- 成功后会生成
HelloWorld.class
字节码文件 - 若报错”javac不是命令”,需检查环境变量配置
- 成功后会生成
-
运行程序
java HelloWorld
注意:
- 不要加
.class
扩展名 - 类名严格区分大小写(
HelloWorld
≠helloworld
)
- 不要加
-
查看输出
终端显示:Hello, Command Line!
常见问题解决
错误提示 | 原因 | 解决方案 |
---|---|---|
'javac' 不是内部或外部命令 |
Path配置错误/JDK未安装 | 检查JAVA_HOME和Path变量 |
找不到或无法加载主类 |
类名错误/路径问题 | 使用完整类名,确认在正确目录 |
类XXX是公共的... |
文件名与类名不一致 | 修改文件名匹配public类名 |
编码GBK的不可映射字符 |
源码含中文/编码不兼容 | 编译时加编码参数:javac -encoding UTF-8 File.java |
高级技巧
-
带包名的程序运行
- 若类包含包声明(如
package com.example;
):javac -d . HelloWorld.java # -d参数自动生成包目录 java com.example.HelloWorld # 使用全限定类名
- 若类包含包声明(如
-
传递命令行参数
public static void main(String[] args) { System.out.println("参数: " + args[0]); }
运行命令:
java HelloWorld "参数值"
-
引用外部JAR包
编译和运行时指定classpath:javac -cp .;lib.jar Main.java # Windows用分号分隔 java -cp .;lib.jar Main
为什么推荐命令行?
- 深入理解原理:掌握Java编译→字节码→JVM执行的全过程
- 灵活高效:适合服务器环境、自动化脚本及学习底层机制
- 排错能力:直接暴露错误信息,助力调试能力提升
重要提示:
- JDK与JRE区别:需安装JDK(含编译器javac),仅JRE无法编译
- 环境变量是核心:90%的启动失败源于Path或JAVA_HOME配置错误
- 类路径(Classpath):默认当前目录,跨目录执行需用
-cp
指定路径
通过命令行操作,您将获得对Java程序更底层的控制权,为进阶开发(如构建工具、服务部署)奠定基础。
引用说明:本文操作基于Oracle JDK 21+Windows 11环境验证,参考Oracle官方文档《Java Platform Standard Edition Development Kit User’s Guide》,Linux/macOS用户需将路径分隔符改为冒号(
-cp .:lib.jar
)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/34111.html