如何正确调用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_HOME 和 Path 配置
    • 重启终端或执行 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如何正确输出JSON数据?

    在Web开发领域,数据交互的效率与规范性直接影响应用性能与用户体验,ASP(Active Server Pages)作为微软早期推出的服务器端脚本环境,尽管在新项目中逐渐被ASP.NET等技术取代,但在许多遗留系统维护和特定场景中仍被广泛应用,ASP输出JSON(JavaScript Object Notati……

    2025年11月12日
    18700
  • 规范化设计在关系型数据库中的重要性体现在何处?数据库规范化设计的好处

    规范化设计的核心意义在于通过消除数据冗余和异常,确保数据的一致性与完整性,从而在2026年高并发、大数据量的业务场景下,显著降低存储成本并提升查询性能,在关系型数据库(RDBMS)的设计初期,许多开发者往往陷入“先跑通逻辑,再优化结构”的误区,随着2026年物联网设备激增与实时交易场景的普及,非规范化设计带来的……

    2026年6月8日
    7100
  • ASP如何连接MySQL数据库?

    在Web开发中,ASP(Active Server Pages)作为一种经典的服务器端脚本技术,常用于构建动态网页,而MySQL作为开源的关系型数据库,凭借其高性能和稳定性被广泛应用,将ASP与MySQL结合,可实现高效的数据交互,满足动态网站的数据存储、查询和管理需求,本文将详细介绍ASP连接MySQL数据库……

    2025年11月16日
    15100
  • 关于要c云服务器相关的问答

    选购云服务器需综合考量业务负载、预算及合规性,2026年主流趋势指向“按需弹性+信创适配”,建议初创企业选择轻量应用服务器,中大型项目采用CVM实例并开启自动扩容,在数字化转型进入深水区的2026年,云计算已从“可选项”变为“必选项”,面对阿里云、腾讯云、华为云等头部厂商纷繁复杂的规格,许多开发者与企业IT负责……

    2026年6月17日
    5500
  • 语音采集技术面临哪些挑战与突破?语音采集技术难点

    2026年语音采集技术的核心结论是:基于端侧AI芯片的混合降噪算法与多模态空间音频采集已成为主流,其核心优势在于通过硬件级波束成形与软件级深度学习协同,在复杂噪音频段实现信噪比提升15dB以上,且隐私合规性达到GDPR及中国《个人信息保护法》最新标准,语音采集技术演进与核心架构随着智能终端与物联网设备的普及,语……

    2026年6月15日
    11800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信