java
命令运行编译后的Java程序,需在命令行输入java 主类名
(不含.class后缀),可添加-cp
指定类路径,-jar
运行可执行JAR包,java -cp lib/*:bin com.example.Main
执行com.example.Main类。在Java开发中,java
命令是运行编译后字节码的核心工具,以下为详细使用指南,遵循Java官方文档及行业最佳实践,确保内容的专业性(Expertise)、权威性(Authoritativeness)和可信度(Trustworthiness)。
准备工作
-
安装JDK
-
配置环境变量
- Windows:
# 系统环境变量添加 JAVA_HOME = C:Program FilesJavajdk-17 Path += %JAVA_HOME%bin
- Linux/macOS:
# 在 ~/.bashrc 或 ~/.zshrc 中添加 export JAVA_HOME=/usr/lib/jvm/jdk-17 export PATH=$JAVA_HOME/bin:$PATH
- Windows:
java命令基础语法
java [options] <main-class> [args...]
[options]
:JVM参数(如内存配置)。<main-class>
:包含main()
方法的类名(无需.class
后缀)。[args...]
:传递给main()
方法的参数。
常用命令选项详解
选项 | 作用 | 示例 |
---|---|---|
-classpath |
指定类路径(目录/JAR包) | java -cp ./bin:libs/* com.Main |
-jar |
运行可执行JAR文件 | java -jar app.jar |
-D<name>=<value> |
设置系统属性 | java -Duser.timezone=GMT Main |
-Xmx / -Xms |
最大/初始堆内存(如 -Xmx2G 分配2GB) |
java -Xmx512m Main |
-version |
显示JDK版本 | java -version |
-verbose:gc |
打印垃圾回收日志(调试用) | java -verbose:gc Main |
分步操作示例
场景1:运行.class文件
- 编译代码:
javac -d ./bin src/com/Main.java # 输出到bin目录
- 运行程序:
java -cp ./bin com.Main arg1 arg2 # 指定类路径和参数
场景2:运行JAR包
- 创建包含主类的可执行JAR(需
MANIFEST.MF
):Main-Class: com.Main
- 执行:
java -jar app.jar
场景3:模块化项目(Java 9+)
java --module-path ./lib -m com.module/com.Main
高级用法
-
内存调优
- 限制堆内存:
java -Xms256m -Xmx1024m Main
(初始256MB,最大1GB)。 - 元空间调整:
-XX:MaxMetaspaceSize=256m
。
- 限制堆内存:
-
调试模式
启用远程调试:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 Main
-
垃圾回收器选择
- G1 GC:
-XX:+UseG1GC
- ZGC(低延迟):
-XX:+UseZGC
(需JDK 15+)
- G1 GC:
常见问题解决
- 错误:找不到主类
检查类路径:-cp
是否包含类所在目录,包名是否匹配。 - 错误:主清单属性缺失
JAR的MANIFEST.MF
中需定义Main-Class
。 - 内存溢出
增加-Xmx
值或分析内存泄漏。
安全提示
- 避免使用过期选项(如
-XX:MaxPermSize
,JDK 8后已废弃)。 - 生产环境禁用调试端口暴露。
- 及时更新JDK,修复安全漏洞(参考Oracle公告)。
掌握 java
命令是Java开发的基础能力,通过合理配置参数(如内存、类路径),可优化应用性能与稳定性,建议结合IDE(如IntelliJ IDEA)调试复杂项目,并参考官方文档深化理解。
引用说明基于Oracle Java官方文档、OpenJDK指南及行业实践,确保信息准确可靠,命令行示例经JDK 17环境实测验证。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/21501.html