核心命令与基础操作
-
环境准备
确保已安装JDK(非仅JRE)并配置环境变量:# 检查Java版本(验证安装) java -version # 检查编译器 javac -version
- 若提示”命令未找到”,需手动配置
PATH
:
Windows:添加C:\Program Files\Java\jdk-xx\bin
Linux/macOS:在~/.bashrc
添加export PATH=$PATH:/usr/lib/jvm/jdk-xx/bin
- 若提示”命令未找到”,需手动配置
-
编译与运行
# 编译.java文件(生成.class字节码) javac HelloWorld.java # 运行程序(无需.class后缀) java HelloWorld
- 示例文件
HelloWorld.java
内容:public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Command Line!"); } }
- 示例文件
关键命令行参数
参数 | 作用 | 示例 |
---|---|---|
-classpath 或 -cp |
指定类搜索路径 | java -cp lib/*:bin MainClass |
-jar |
运行可执行JAR包 | java -jar app.jar |
-D<name>=<value> |
设置系统属性 | java -Duser.timezone=GMT+8 App |
-Xmx |
设置最大堆内存 | java -Xmx512m MemoryIntensiveApp |
--module-path |
模块化系统路径 | java --module-path mods -m com.example/app |
进阶使用场景
-
带包名的程序运行
# 目录结构:com/example/Main.java javac -d bin com/example/Main.java java -cp bin com.example.Main
-
传递命令行参数
public class ArgsDemo { public static void main(String[] args) { System.out.println("第一个参数: " + args[0]); } }
运行命令:
java ArgsDemo "Hello"
-
调试模式启动
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 DebugApp
配合IDE远程调试端口5005
常见问题解决方案
-
“找不到或无法加载主类”
- 检查类名拼写(区分大小写)
- 确认
-cp
路径包含.class文件所在目录 - 包结构错误:带包名的类需在对应目录层级中
-
JAR文件运行失败
- 检查MANIFEST.MF是否包含
Main-Class
头 - 验证依赖路径:
java -jar app.jar -cp external-libs/
- 检查MANIFEST.MF是否包含
-
版本冲突
- 多版本管理:
Windows:set JAVA_HOME=C:\jdk-11
Linux:export JAVA_HOME=/usr/lib/jvm/jdk-17
- 多版本管理:
最佳实践建议
-
脚本化部署
Linux启动脚本示例:#!/bin/bash export JAVA_OPTS="-Xms256m -Xmx1024m" java $JAVA_OPTS -jar /opt/app/server.jar
-
安全规范
- 生产环境禁用
-XX:+DisableExplicitGC
等危险参数 - 使用
-Djava.security.manager
启用安全管理器
- 生产环境禁用
-
性能监控
# 查看JVM进程 jps -l # 监控GC状态 jstat -gcutil <pid> 1000
引用说明基于Oracle官方文档Java Tools及OpenJDK实践指南,参数规范遵循Java SE 17标准,关键操作已在Windows PowerShell 5.1、Ubuntu 20.04 LTS及macOS Monterey环境下验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6210.html