启动JAVA

news/2025/10/20 17:06:36/文章来源:https://www.cnblogs.com/hellodeyang/p/19153120

目录
  • 启动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.mzph.cn/news/941386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年通风天窗厂家最新权威推荐榜:通风天窗,排烟天窗,通风气楼,屋顶通风器,顺坡气楼,10A通风天窗,1型通风天窗,TC5A通风天窗,TC12B通风天窗,屋脊通风天窗专业制造与高效通风解决方案

2025年通风天窗厂家最新权威推荐榜:专业制造与高效通风解决方案 随着工业建筑对通风排烟要求的不断提高,通风天窗、排烟天窗、通风气楼等设备已成为现代工业厂房不可或缺的重要组成部分。这些设备不仅关系到车间的空…

三款AI平台部署实战体验:Dify、扣子与BuildingAI深度对比

最近在为客户选型AI应用平台时,我系统地测试了几款热门的开源解决方案。今天主要从部署体验这个关键维度,分享对 Dify、扣子 和 BuildingAI 的实际使用感受。从一键部署到商业闭环,开发者需要考量的不只是技术参数 …

#OO之接口-DAO模式代码阅读及应用

1.StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同? 存储底层结构:StudentDaoListImpl基于动态数组存储学生;StudentDaoArrayImpl基于普通数组存储,长度是固定的。 初始化要求:StudentDaoListImpl无需…

2025年南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,精选优质宠物医疗机构

2025年南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,精选优质宠物医疗机构 随着南通市宠物医疗行业的快速发展,宠物医疗服务已从基础诊疗向专科化、精细化方向转型升级。现代宠物医院不仅需要具备专业的医疗…

PPO GRPO GSPO DAPO的Loss计算与代码实现

首先看一下KL的基础公式 KL KL1: 大模型的KL一般是反向的: \[KL(\pi_\theta||\pi_{ref}) = E_{x\sim\pi_\theta(\cdot|o_{<t})}log\frac{\pi_\theta(x|o_{<t})}{\pi_{ref}(x|o_{<t})} \]\(x\sim\pi_\theta(\…

P3601 签到题

// 容易注意到 qiandao(i) = i - phi(i) // phi 是欧拉函数// 让我们想起最开始求欧拉函数的做法 // 分解质因数, 然后使用 phi(x) = x * 求积_{p in {x 的所有质因数}} (1 - 1 / p) // 这样的时间复杂度显然过大// 我…

图像采集卡重要功能解析:打通视频信号处理全链路

在视频采集与处理的产业链中,图像采集卡是连接前端设备与后端计算机的关键枢纽,其功能覆盖信号转换、接口适配、格式兼容等多个重要环节,为直播、监控、影视制作等场景提供稳定高效的技术支撑。 一、视频信号转换:…

2025年铣边机/铣床/刨边机/滚轮架/变位机厂家推荐排行榜,专业实力与市场口碑深度解析

2025年铣边机/铣床/刨边机/滚轮架/变位机厂家推荐排行榜,专业实力与市场口碑深度解析 随着制造业向智能化、精密化方向快速发展,铣边机、铣床、刨边机、滚轮架、变位机等关键设备在工业生产中的重要性日益凸显。这些…

[Ubuntu]在windows系统上下载chrome browser .deb 文件

https://www.google.com/chrome/?platform=linuxTo download Chrome browser for the enterprise:Go to the Chrome browser packages download page and click Download Chrome. Download the package for your Linu…

详细介绍:php+vue新疆数字证书认证政府中心网站建设

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年机械加工厂家推荐排行榜,钣金加工,焊接件加工,零件加工,天文台圆顶加工,非标自动化设备加工设计,精密钣金加工,精密零件加工,金属加工公司推荐

2025年机械加工厂家推荐排行榜:精密制造领域的权威指南 随着制造业向智能化、精密化方向快速发展,机械加工行业正经历着深刻变革。作为工业制造的基础支撑,机械加工、钣金加工、焊接件加工、零件加工等技术领域对产…

A3979

两相四线步进电机的驱动方法/驱动芯片用法_两相四线步进电机驱动芯片-CSDN博客

基于物理信息神经网络(PINN)求解二维稳态对流-扩散方程的MATLAB构建

基于物理信息神经网络(PINN)求解二维稳态对流-扩散方程的MATLAB构建2025-10-20 16:56 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto…

UOJ #1005. 【UR #32】王之钦定 题解

Description 跳蚤国计算机协会 UOI 主席 “王中王” 认为 UOI 决赛不具有观赏性。 比如蟋蟀国的比赛,选手都需要在初赛快速 AK 才能晋级决赛,但 UOI 决赛只需要通过不到一半的题目就可以获得三十二强。 但是经过 UOI…

《C++ string类深度解析:核心接口全方位精讲与掌握》 - 指南

《C++ string类深度解析:核心接口全方位精讲与掌握》 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

HL7v3和RIM是什么,和传统HL7,FHIR有什么关系

简单来说,可以把它们看作是医疗信息标准演进的三个主要阶段:HL7 V2.x(传统HL7):“实用主义”的行业标准 - 像方言,灵活但不够严谨。 HL7 V3 RIM:“理想主义”的理论基础 - 试图创建一门完美的“世界语”的语法和…

2025 年防撞护栏生产厂家最新推荐排行榜:聚焦铝合金 / Q235/Q355B 桥梁等多类型护栏,精选优质企业

引言 当前交通基础设施建设不断推进,防撞护栏作为保障道路与桥梁安全的核心设施,市场需求持续增长。但市场上厂家数量繁杂,产品质量、生产能力和服务水平差异显著,采购方常面临原材料以次充好、产能不足延误工期、…

AtCoder AGC047 总结

AtCoder AGC047 总结 A 由于小数位最多九位,我们先乘 \(10^9\),转化为求 \(10^{18}\mid a_ia_j\) 的个数。 考虑分解质因数,要求 \(2,5\) 的次数都至少为 \(18\) 即可。时间 \(18^2\times n\)。 B 一个串可以变成的…

YAML

YAML《yaml在嵌入式软件开发中的作用》 YAML:轻量级的数据序列化语言。

QUALIFY 窗口过滤 - --

传统方式(使用CTE):sqlWITH ranked_data AS (SELECT user_id,ip,country_code,os,RANK() OVER (PARTITION BY user_id ORDER BY log_datetime DESC) AS previous_loginsFROM login_logs ) SELECT user_id, ip, coun…