当前位置: 首页 > 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.gsyq.cn/news/25413.html

相关文章:

  • #OO之接口-DAO模式代码阅读及应用
  • 图像采集卡重要功能解析:打通视频信号处理全链路
  • 基于物理信息神经网络(PINN)求解二维稳态对流-扩散方程的MATLAB构建
  • 《C++ string类深度解析:核心接口全方位精讲与掌握》 - 指南
  • HL7v3和RIM是什么,和传统HL7,FHIR有什么关系
  • QUALIFY 窗口过滤 - --
  • 2025年通风天窗厂家最新权威推荐榜:排烟天窗、通风气楼、屋顶通风器、顺坡气楼、10A通风天窗、1型通风天窗、TC5A通风天窗、TC12B通风天窗、屋脊通风天窗专业选购指南
  • 【LeetCode】125. 验证回文串
  • Toposort
  • 2025年冲压件厂家权威推荐榜:新能源/光伏/精密/异形/五金/铝/汽配/不锈钢/家具冲压件源头企业深度解析
  • AI 产品测试企业内训 | 两天构建企业级智能体测试能力
  • 2025年储罐厂家权威推荐榜:钢衬塑储罐,钢塑复合储罐,化工储罐,防腐储罐,PE储罐,盐酸储罐,硫酸储罐,聚丙烯储罐,不锈钢储罐,次氯酸钠储罐
  • 2025 最新推荐!溴化锂回收公司精选榜单:制冷机 / 溶液 / 机组回收服务商权威测评及选择指南
  • 微算法科技(MLGO)研发突破性低复杂度CFG算法,成功缓解边缘分裂学习中的掉队者问题
  • 大语言模型的微调策略
  • Excel学习指南
  • 2025年聚氨酯厂家权威推荐榜:浇注型聚氨酯/聚氨酯预聚体/聚氨酯胶黏剂/聚氨酯组合料/密封胶/胶辊/制品原料,源头厂家技术实力与产品应用深度解析
  • 02-02串口-单片机发送数据,电脑串口调试助手接收数据
  • 2025 矿物铸件源头厂家推荐榜:南通盟鼎新材料 5 星领跑,适配机床 / 电子 / 自动化设备基座需求
  • 2025年家纺摄影公司推荐排行榜,南通摄影公司,家纺产品摄影,电商家纺拍摄,品牌家纺视觉策划专业团队
  • 遗传算法入门
  • 3 大 Python 库助力高效 PDF 文件压缩 - E
  • 三麦克风阵列近场定位MATLAB实现(TDOA+GCC方法)
  • Servlet的几种用法? - 教程
  • 2025年青海视频号运营服务商权威推荐榜:专业内容策划与精准流量投放口碑之选
  • task 1 improved
  • user read only folder
  • cpu for rhel8 on vmware
  • CentOS7安装Python3.10环境
  • shiyan 2