当前位置: 首页 > news >正文

启动JAVA

目录
  • 启动JAVA
    • 直接类启动
    • JAR 包启动
    • 类路径
    • 例子
    • 启动方式总结

启动JAVA

直接类启动

# 当你不指定 -cp 时,JVM 使用:
java com.example.Main
# 等效于:只包含当前目录,不包含其他 JAR!
java -cp . com.example.Main

JAR 包启动

java -jar app.jar 执行的是 JAR 包中 META-INF/MANIFEST.MF 文件里指定的 Main-Class

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Game-Dev-Team
Created-By: Apache Maven 3.8.1
Build-Jdk: 11.0.12
Specification-Title: Game Server Application
Implementation-Title: game-server
Implementation-Version: 1.0.0
Implementation-Vendor-Id: com.sh.mu
Main-Class: com.test.mu.start.GameStartup # 执行 GameStartup.main() 方法
Class-Path: lib/network-1.2.0.jar lib/database-2.1.0.jar lib/utils-0.9.0.jar

META-INF/MANIFEST.MF 通常是打包工具自动生成的!

如果不做任何配置,构建工具会生成一个基本的 MANIFEST.MF:

Manifest-Version: 1.0
Created-By: 11.0.12 (Oracle Corporation)

但这样的 JAR 不能使用 java -jar 运行,因为没有 Main-Class

java -jar app.jar↓
JVM 读取 META-INF/MANIFEST.MF↓
找到 Main-Class: com.test.mu.start.GameStartup  ↓
加载并执行 GameStartup.main(String[] args)

类路径

java -cp "lib/*:." com.mycompany.Main## java
# Java 运行时启动命令## -cp "lib/*:."
# -cp = classpath 的缩写,指定类路径## "lib/*" = lib 目录下的所有 JAR 文件## : = 类路径分隔符(Linux/Unix 系统)
## :. = 当前目录(包含编译的 .class 文件)## Main 要执行的主类名(不需要 .class 后缀)  例如:com.mycompany.Main

例子

java -Xmx512m com.test.mu.start.GameStartup ${ROOT}/conf/config.properties > ${ROOT}/log.txt 2>&1 &
# 分解来看:
java \                          # 启动JVM-Xmx512m \                    # 分配最大512MB堆内存com.test.mu.start.GameStartup \ # 执行这个主类${ROOT}/conf/config.properties \ # 配置文件路径参数> ${ROOT}/log.txt \           # 标准输出重定向到日志文件2>&1 \                        # 标准错误也重定向到同一文件&                             # 后台运行#java com.test.mu.start.GameStartup = 执行 GameStartup.main() 方法
# 后面的参数 ${ROOT}/conf/config.properties = 传递给 main 方法的 String[] args 参数

启动方式总结

Java 应用的启动方式非常丰富:

启动方式 适用场景 示例命令
直接类 简单应用 java com.example.Main
JAR 包 标准部署 java -jar app.jar
类路径 复杂依赖 java -cp "lib/*:." Main
模块化 Java 9+ java --module-path mods -m module/main
Spring Boot 微服务 java -jar app.jar --profile=prod
调试模式 开发调试 java -agentlib:jdwp ... -jar app.jar
性能调优 生产环境 java -Xmx2g -XX:+UseG1GC -jar app.jar
Docker 容器化 docker run java -jar app.jar
http://www.jsqmd.com/news/17597/

相关文章:

  • 2025年通风天窗厂家最新权威推荐榜:通风天窗,排烟天窗,通风气楼,屋顶通风器,顺坡气楼,10A通风天窗,1型通风天窗,TC5A通风天窗,TC12B通风天窗,屋脊通风天窗专业制造与高效通风解决方案
  • 三款AI平台部署实战体验:Dify、扣子与BuildingAI深度对比
  • #OO之接口-DAO模式代码阅读及应用
  • 2025年南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,精选优质宠物医疗机构
  • PPO GRPO GSPO DAPO的Loss计算与代码实现
  • P3601 签到题
  • 图像采集卡重要功能解析:打通视频信号处理全链路
  • 2025年铣边机/铣床/刨边机/滚轮架/变位机厂家推荐排行榜,专业实力与市场口碑深度解析
  • [Ubuntu]在windows系统上下载chrome browser .deb 文件
  • 详细介绍:php+vue新疆数字证书认证政府中心网站建设
  • 2025年机械加工厂家推荐排行榜,钣金加工,焊接件加工,零件加工,天文台圆顶加工,非标自动化设备加工设计,精密钣金加工,精密零件加工,金属加工公司推荐
  • A3979
  • UOJ #1005. 【UR #32】王之钦定 题解
  • 《C++ string类深度解析:核心接口全方位精讲与掌握》 - 指南
  • HL7v3和RIM是什么,和传统HL7,FHIR有什么关系
  • AtCoder AGC047 总结
  • YAML
  • QUALIFY 窗口过滤 - --
  • 【ffmpeg】开发过程中错误简单记录
  • 2025 定制家具厂家推荐榜:定制酒柜/定制房门/定制护墙板/定制吧台/定制装饰柜/定制鞋柜/聚焦个性化与环保,这家深圳企业成优选​
  • Winform开发报表(锐浪推方式)
  • 2025年通风天窗厂家最新权威推荐榜:排烟天窗、通风气楼、屋顶通风器、顺坡气楼、10A通风天窗、1型通风天窗、TC5A通风天窗、TC12B通风天窗、屋脊通风天窗专业选购指南
  • 【LeetCode】125. 验证回文串
  • Toposort
  • 2025年冲压件厂家权威推荐榜:新能源/光伏/精密/异形/五金/铝/汽配/不锈钢/家具冲压件源头企业深度解析
  • AI 产品测试企业内训 | 两天构建企业级智能体测试能力
  • 详细介绍:《掰开揉碎讲编程-短篇》 2025 汉化idea控制台出现乱码解决方案 看完这篇解决不了乱码也是神人了
  • 探索无限可能:生成式推荐的演进、前沿与挑战【AI业务应用方向】
  • 【隐语SecretFlow架构解读】隐私保护模型在线推理系统 SecretFlow-Serving 架构解读
  • 2025年储罐厂家权威推荐榜:钢衬塑储罐,钢塑复合储罐,化工储罐,防腐储罐,PE储罐,盐酸储罐,硫酸储罐,聚丙烯储罐,不锈钢储罐,次氯酸钠储罐