Ely Prism Launcher 启动命令全解析:LaunchProfile 与 AuthSession 如何生成游戏进程命令行
【免费下载链接】LauncherThis fork of Prism Launcher adds integrated support for Ely.by accounts.项目地址https://gitcode.com/GitHub_Trending/ely/Launcher点击查看免费下载Ely Prism Launcher 是一款支持 Ely.by 账号的 Minecraft 游戏启动器Prism Launcher 的分支。每次点击“开始游戏”它都会在后台悄悄拼装一条完整的 java 启动命令JVM 参数、类路径classpath、游戏参数、账号登录凭据全部合二为一。本文带你搞懂背后两大主角——LaunchProfile版本启动档案和AuthSession账号会话是如何一步步变成游戏进程命令行的即使你不懂代码也能看懂整个流程。一、先认识两位主角 可以把它想象成“点餐 结账”角色文件位置职责AuthSession账号会话launcher/minecraft/auth/AuthSession.h记录“你是谁”玩家名、UUID、访问令牌access_token、组合会话session、账号类型LaunchProfile启动档案launcher/minecraft/LaunchProfile.h记录“怎么启动”主类名、参数模板、依赖库列表、Java 兼容版本、Jar Mods 等AuthSession是一个简洁的结构体核心字段只有几个session组合会话 ID在线账号形如token:访问令牌:用户IDplayer_name/uuid游戏内显示的名字和身份user_type账号类型如msa、offlinewantsElyPatchEly 分支特有的标志位决定是否在启动前应用 Ely 补丁LaunchProfile则像一个“收集盒”版本文件、模组、加载器各自往里放东西主类、minecraftArguments参数模板里面含${auth_session}这类占位符、库文件、Java Agent、traits 特性标记等见 launcher/minecraft/LaunchProfile.h。二、AuthSession把账号变成登录凭据1. 在线账号含 Ely 账号点击启动后账号会先走一遍认证流程AuthFlow见 launcher/minecraft/auth/AuthFlow.cpp。Ely 账号的认证步骤是ElyStepEly.by OAuth 登录 → ElyYggdrasilTokenStep换取游戏令牌 → MinecraftProfileStepEly获取游戏档案 → GetSkinStep拉取皮肤认证成功后凭据统一写入会话MinecraftAccount::fillSession 把访问令牌、玩家名、UUID、账号类型填进去并拼出组合会话session token: accessToken : profileId这里还有一个 Ely 分支独有的细节根据用户在设置里选的“Ely 补丁偏好”wantsElyPatch会被置为 true/false始终打、仅 Ely/离线账号、仅 Ely 账号、从不打。这个标志位稍后会决定要不要多跑一个补丁步骤。2. 离线模式没有网络也不想登录时离线账号直接调用 AuthSession::MakeOfflinesession -、access_token 0玩家名由你自己起UUID 用玩家名做 MD5 哈希生成uuidFromUsername 无论哪种账号最终都浓缩成同一个AuthSession结构体——这是后面拼装命令行的统一“入口”。三、LaunchProfile版本文件的“总装档案”游戏本体、Forge/Fabric 等加载器、模组各自带一份版本描述文件。启动器会把它们逐个“应用”apply进LaunchProfile比如applyMainClass记下要加载的主类applyMinecraftArguments记下参数模板例如--username ${auth_player_name} --session ${auth_session} --gameDir ${game_directory}示例见 launcher/minecraft/LaunchProfile.happlyLibrary/applyAgent收集依赖 jar 和 Java Agent并按版本号去重保留更高版本applyLibrary 实现getLibraryFiles按当前操作系统和 Java 位数把“该放进 classpath 的 jar 列表”算出来launcher/minecraft/LaunchProfile.cpp一句话LaunchProfile 负责“游戏要哪些文件、跑哪个主类、参数模板长什么样”。四、命令行拼装五连击 ⚙️真正的拼装发生在 MinecraftInstance::createLaunchTask 里它把“建文件夹 → 检查 Java → 装库 → 解包 → 拉起进程”排成一条流水线。其中与命令行直接相关的有 5 步第 1 步生成 JVM 参数javaArguments() 负责 Java 层面的参数内存按你在设置里填的值生成-Xms512m -Xmx2048m这类参数GC 预设根据 Java 版本自动追加优化参数额外参数-javaagent:、系统 OpenAL/GLFW 等extraArguments()第 2 步把占位符换成真值processMinecraftArgs() 把LaunchProfile里的参数模板按空格拆开然后做变量替换。映射表由两部分组成来源可替换的占位符makeProfileVarMapping()version_name、game_directory、game_assets、assets_index_name、library_directory等AuthSessionauth_session、auth_player_name、auth_uuid、user_properties、user_type例如模板里的${auth_player_name}会被替换成你账号的玩家名${auth_session}被替换成token:xxx:uuid会话串——这就是账号凭据真正“注入”命令行的地方。如果指定了加入服务器还会追加--server 地址 --port 端口。第 3 步写入启动脚本createLaunchScript() 把上述结果整理成一段文本脚本包含mainClass主类、param上一步生成的全部游戏参数、窗口标题/尺寸、userName/sessionId兼容老版本的登录信息、traits 特性等。这段脚本不会直接执行而是留给下一步“投喂”给游戏。第 4 步真正拉起 java 进程LauncherPartLaunch::executeTask() 是临门一脚取第 1 步的 JVM 参数追加-Djava.library.path存放解包后的本地库追加-cp加上完整 classpath启动器自带的NewLaunch.jar放在最前后面是LaunchProfile算出的所有游戏 jar主程序入口固定为org.prismlauncher.EntryPointlibraries/launcher/org/prismlauncher/EntryPoint.java。于是你最终看到的命令行大致长这样参数已做脱敏java -Xms512m -Xmx2048m ... -Djava.library.path.../natives -cp NewLaunch.jar;...所有依赖jar org.prismlauncher.EntryPoint进程启动后启动器再把第 3 步的启动脚本写入它的标准输入等一切就绪后写入launch指令游戏才真正开始见 proceed()。第 5 步Ely 分支特色Ely 补丁任务回看流水线还有一步是 Ely 分支新增的当AuthSession::wantsElyPatch为真时会在拉起进程前插入 ElyPatchTask组装位置见 launcher/minecraft/MinecraftInstance.cpp为 Ely.by 账号相关功能准备补丁。普通离线/Microsoft 账号则可能直接跳过这一步。五、想亲眼看看生成的参数不用翻源码实例右键“查看信息”就能打印出这份命令行档案verboseDescription() 会把主类、库列表、Minecraft 参数、窗口尺寸、环境变量逐项列出方便排查启动问题。另外出于安全考虑日志里的令牌等敏感信息会被自动打码替换createCensorFilterFromSession所以你看到SESSION ID之类字样是正常现象。六、一句话总结 整个流程可以浓缩成一条链账号登录 → AuthSession你是谁版本文件 → LaunchProfile怎么启动两者 你的设置 → java 参数 游戏参数 classpathLauncherPartLaunch → 拉起 java 进程投喂启动脚本游戏起飞理解了LaunchProfile和AuthSession的分工你就能看懂 Ely Prism Launcher 控制台里每一行参数的来历也能更快定位“参数不生效、账号没带上”这类疑难杂症。赞分享【免费下载链接】LauncherThis fork of Prism Launcher adds integrated support for Ely.by accounts.项目地址https://gitcode.com/GitHub_Trending/ely/Launcher点击查看免费下载相关推荐如何用Ely Prism Launcher配置内存与JVM参数提升游戏FPS的完整教程如何用Ely Prism Launcher配置内存与JVM参数提升游戏FPS的完整教程 Ely Prism LauncherPineconeMC是一款基于如何用Ely Prism Launcher启动时直连指定服务器JoinServerOnLaunch配置详解如何用Ely Prism Launcher启动时直连指定服务器JoinServerOnLaunch配置详解 Ely Prism Launcher 是一款支持Ely Prism Launcher启动流水线全解LaunchTask中20个步骤的完整剖析Ely Prism Launcher启动流水线全解LaunchTask中20个步骤的完整剖析 Ely Prism Launcher 是一款集成了 Ely.by创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Kev 私有化部署落地:风控、审核、工单分配三场景配置指南

Kev 私有化部署落地:风控、审核、工单分配三场景配置指南

Kev 私有化部署落地:风控、审核、工单分配三场景配置指南 【免费下载链接】kev Jev-like family of decision models built on top of Qwen3.5/3.8 you can train and run on your own 项目地址: https://gitcode.com/gh_mirrors/kev2/kev 决策类任务的工程化…

2026/10/17 14:48:08 阅读更多 →
从关系代数到函数依赖与范式:数据库表设计核心原理

从关系代数到函数依赖与范式:数据库表设计核心原理

你翻开数据库教材,发现在讲了关系代数、SQL查询之后,突然冒出一节叫“函数依赖”和“范式”的东西,第一反应可能是:这又要背什么定义了?我当年学到这里也是一头雾水——关系代数明明是用来查数据的,怎么突然…

2026/10/17 17:36:23 阅读更多 →
Java 17 RandomGenerator:统一随机数API与流式用法

Java 17 RandomGenerator:统一随机数API与流式用法

如果你写过Java随机数相关代码,一定被这几件事困扰过:Random、ThreadLocalRandom、SplittableRandom功能重叠却各有各的“脾气”,方法签名不统一,换一种实现就要改一堆调用;想用一个Random参数的方法,传入S…

2026/10/17 17:55:09 阅读更多 →

最新新闻

2026年AI接口聚合服务深度横评:从调用稳定性看词元之河与硅基流动的中小团队适配度

2026年AI接口聚合服务深度横评:从调用稳定性看词元之河与硅基流动的中小团队适配度

2026年5月完成的一轮 AI 接口聚合服务实测横评,方法论为 72 小时连续压测、12 类典型调用场景模拟与 37 位一线开发者访谈。行业背景值得关注:据《中国AI基础设施白皮书(2026Q1)》,超过 68% 的中小技术团队在大模型应用…

2026/10/18 2:12:56 阅读更多 →
手工LL(1)编译器实战:从词法到语义的5层避坑指南

手工LL(1)编译器实战:从词法到语义的5层避坑指南

简介:本资源是一份完整的高校编译原理课程设计报告,面向计算机专业本科生及编译技术初学者,聚焦Pascal子集编译器的系统性实现与原理剖析。报告涵盖词法分析(含符号表构建与注释处理)、语法分析(自顶向下LL…

2026/10/18 2:12:56 阅读更多 →
香港公司注册怎么办理?

香港公司注册怎么办理?

一、香港公司注册是什么?有什么用? 香港公司注册,是指依据香港《公司条例》,向香港公司注册处提交申请,取得公司注册证书及商业登记证的法律程序。 对跨境卖家、外贸企业和品牌方而言,香港公司主要用于&…

2026/10/18 2:12:56 阅读更多 →
阿里钉钉Java集成实战:组织同步、消息推送与审批回调全链路落地

阿里钉钉Java集成实战:组织同步、消息推送与审批回调全链路落地

简介:本资源是一套面向Java开发者的企业级钉钉集成实战项目,聚焦阿里钉钉开放平台API在业务系统中的落地应用,适用于需实现组织通讯、审批流对接、消息推送及移动办公集成的中高级后端工程师。压缩包共174个文件,含32个核心Java源…

2026/10/18 2:12:56 阅读更多 →
力扣排序题复盘:核心模板、比较器陷阱与高效刷题路线

力扣排序题复盘:核心模板、比较器陷阱与高效刷题路线

说起力扣刷题,排序题目是我最早碰、也最晚想明白的一类。刚开始我以为"过一遍快排和归并就能应付",结果连续几道题把我按在地上摩擦——不是不会写排序,而是不知道题目想让我用什么排序、为什么这么排序、边界条件又藏在哪里。这篇…

2026/10/18 2:12:56 阅读更多 →
BLE OTA断连恢复设计:从参数配置到双Bank兜底的全流程指南

BLE OTA断连恢复设计:从参数配置到双Bank兜底的全流程指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 2:11:56 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →