环境准备(必需步骤)
-
安装JDK
- 从Oracle官网或OpenJDK下载对应系统的JDK(推荐JDK 11+)。
- 安装后配置环境变量:
- Windows:
添加JAVA_HOME
=JDK安装路径
(如C:\Program Files\Java\jdk-21
)
在Path
中添加%JAVA_HOME%\bin
- Linux/macOS:
在~/.bashrc
或~/.zshrc
中添加:export JAVA_HOME=/usr/lib/jvm/jdk-21 export PATH=$JAVA_HOME/bin:$PATH
- Windows:
-
验证安装
终端执行:java -version
输出类似
openjdk 21.0.3 2025-04-16
即表示成功。
基础调用方法
场景1:运行.class文件
- 编译Java源码:
javac HelloWorld.java # 生成 HelloWorld.class
- 运行程序:
java HelloWorld # 注意:无需加.class后缀
场景2:运行JAR包
java -jar app.jar # 执行可执行JAR(需MANIFEST.MF指定主类)
场景3:指定主类运行
java -cp "lib/*:." com.example.Main # Linux/macOS java -cp "lib/*;." com.example.Main # Windows
-cp
:指定类路径(含依赖库和当前目录)com.example.Main
:完整包路径的主类名
高级参数配置
内存管理
java -Xms512m -Xmx2g -XX:MaxMetaspaceSize=256m MyApp
-Xms512m
:初始堆内存512MB-Xmx2g
:最大堆内存2GB-XX:MaxMetaspaceSize=256m
:元空间上限
系统属性传递
java -Dconfig.path=/etc/app.conf -Ddebug=true MyApp
代码中通过 System.getProperty("config.path")
获取值。
垃圾回收调优
java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 MyApp
启用G1垃圾回收器,目标暂停时间200ms。
常见问题解决
-
java: command not found
- 检查
JAVA_HOME
和Path
配置 - 重启终端或执行
source ~/.bashrc
(Linux/macOS)
- 检查
-
NoClassDefFoundError
- 用
-cp
正确指定依赖路径(如JAR目录需包含所有库)
- 用
-
Invalid or corrupt jarfile
- 重新打包JAR:
jar cfm app.jar MANIFEST.MF *.class
- 重新打包JAR:
-
权限问题(Linux/macOS)
chmod +x app.jar # 添加可执行权限
最佳实践与安全建议
-
生产环境推荐:
- 使用JDK长期支持版(如JDK 17/21)
- 通过工具(如Maven/Gradle)管理依赖和打包
- 用Docker容器化部署避免环境差异
-
安全规范:
- 禁止使用
-Djava.security.manager=allow
绕过安全管理器 - 敏感配置通过环境变量传递(非命令行参数)
- 定期更新JDK修复漏洞
- 禁止使用
调试与监控
-
启动远程调试:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 MyApp
用IDE连接5005端口调试。
-
查看JVM参数:
jps -l # 查看Java进程ID jinfo -flags <pid> # 显示进程JVM参数
引用说明: 参考自Oracle官方文档Java Tools及《Java性能权威指南》,命令行参数以OpenJDK 21为准,不同版本可能存在差异,安全建议遵循OWASP Java安全指南。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6218.html