如何正确调用java命令运行程序?

环境准备(必需步骤)

  1. 安装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
  2. 验证安装
    终端执行:

    java -version

    输出类似 openjdk 21.0.3 2025-04-16 即表示成功。


基础调用方法

场景1:运行.class文件

  1. 编译Java源码:
    javac HelloWorld.java  # 生成 HelloWorld.class
  2. 运行程序:
    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。


常见问题解决

  1. java: command not found

    • 检查 JAVA_HOMEPath 配置
    • 重启终端或执行 source ~/.bashrc(Linux/macOS)
  2. NoClassDefFoundError

    • -cp 正确指定依赖路径(如JAR目录需包含所有库)
  3. Invalid or corrupt jarfile

    • 重新打包JAR:jar cfm app.jar MANIFEST.MF *.class
  4. 权限问题(Linux/macOS)

    chmod +x app.jar      # 添加可执行权限

最佳实践与安全建议

  1. 生产环境推荐

    • 使用JDK长期支持版(如JDK 17/21)
    • 通过工具(如Maven/Gradle)管理依赖和打包
    • 用Docker容器化部署避免环境差异
  2. 安全规范

    • 禁止使用-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

(0)
酷番叔酷番叔
上一篇 2025年7月4日 18:07
下一篇 2025年7月4日 18:25

相关推荐

  • asp网站过时

    ASP网站过时:技术落伍与现代化转型的必然选择在互联网技术飞速发展的今天,网站开发技术经历了多次迭代与革新,曾经风靡一时的ASP(Active Server Pages)技术,作为微软早期推出的服务器端脚本环境,在20世纪90年代末至21世纪初占据重要地位,随着时代的发展,ASP技术逐渐暴露出诸多局限性,被业界……

    2025年12月30日
    11400
  • 国内文件云存储空间多大够用,国内文件云存储

    2026年国内文件云存储首选方案需综合考量数据合规性、传输速度及企业级安全架构,对于个人用户推荐阿里云盘或百度网盘极速版,对于企业用户则强烈建议采用腾讯云COS或华为云OBS等具备等保三级认证的专业对象存储服务,国内云存储市场格局与核心选型逻辑随着《数据安全法》与《个人信息保护法》的深入执行,2026年的云存储……

    2026年5月22日
    3200
  • 虚拟服务器云存储架构,其安全性如何保障?云存储数据安全防护措施

    2026年虚拟服务器云存储架构的核心结论是:采用“存算分离+对象存储+智能分层”的混合架构,能实现成本降低30%以上并满足毫秒级数据一致性要求,是应对高并发与海量非结构化数据的首选方案,架构演进:从传统块存储到智能分层随着AI大模型训练与边缘计算场景的爆发,传统基于SAN/NAS的存储架构已难以支撑EB级数据的……

    2天前
    500
  • 国内数据连接解决方案具体指什么?数据连接解决方案有哪些

    国内数据连接解决方案是指通过专线、SD-WAN或5G切片等技术,在合规前提下打通企业内网、云端及海外业务节点的高速、安全数据传输通道,其核心在于解决跨国/跨地域访问延迟高、丢包严重及数据合规性难题,在2026年的数字化深水区,单纯的网络连通已不再是痛点,“稳定、合规、低延迟”的三位一体连接能力才是企业出海与数字……

    2026年5月25日
    2700
  • 关系型数据库操作有哪些基本疑问?数据库基本操作教程

    关系型数据库操作的核心在于通过标准化的SQL语言对结构化数据进行高效增删改查,2026年主流实践已从单一存储转向云原生分布式架构,以MySQL 8.0+、PostgreSQL及国产TiDB为代表,兼顾ACID事务一致性与高并发扩展性,关系型数据库操作的核心逻辑与标准规范在2026年的技术语境下,关系型数据库(R……

    2026年6月1日
    1900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信