教程:怎么在U盘上装一个便携版的MC?

开始

或许你有这么一个需求——把MC装进U盘里面,在任意电脑任意网络环境下玩一下

经过我在互联网上的搜索和时间,总结出这样一种可行方案:

此教程只讨论Windows+未安装Java的环境下使用U盘玩MC,使用HMCL启动器

下载启动器

此处选择HMCL,因为知名度高且不想PCL2还要再依赖别的运行库

使用exe版本的HMCL会要求你安装Java,与需求不符,因此要使用jar版本的HMCL

官网已经删除了HMCL的jar文件,所以要到Github Release下载

下载Java

无论是启动HMCL还是启动游戏都要使用Java

我们可以到这个网站下载,先别急着操作,跟我来

我们先下滑找到这个选择版本的地方,选择Java17,运行HMCL至少需要Java17

先不要点击下面的Windows下载

先往下滑,找到这个玩意

也不要急着下载,先把Package切换到Full JRE,再点击右边的下载zip

根据你要游玩的版本,可能还要下载其它版本的Java,比如我玩1.12.2就还要下载Java8,如果你玩1.18~1.20就不需要额外下载别的版本了

把文件解压好,放在U盘里面

启动HMCL

可以直接敲命令,也可以先创建一个.bat文件(文件名可能需要你手动更改)

@echo off
.\Java17\bin\java.exe -jar .\HMCL.jar

直接运行,打开HMCL

自己下载MC版本,不教

修改Java版本

开始之前有一点需要注意,如果你的版本不能用Java17,就要修改Java版本

进入设置 > Java管理

这个时候你应该只能看到一个JRE17.0.17,就需要你点击添加Java,找到目录,选择Java8/bin/java.exe即可

测试一下,成功启动(HMCL默认自动选择java版本,出错就到全局游戏设置里面把Java指定成对应版本)

生成启动脚本

你要是懒得每次都要先打开HMCL或者带上Java17的话,可以直接生成启动脚本

点击 实例 > 管理 > 生成启动脚本 即可

然后找AI帮你改成相对路径

这是我的:

@echo off
cd /D "%~dp0"
".\Java8\bin\java.exe" -Xmx1450m -Dfile.encoding=GB18030 -Dsun.stdout.encoding=GB18030 -Dsun.stderr.encoding=GB18030 -Djava.rmi.server.useCodebaseOnly=true -Dcom.sun.jndi.rmi.object.trustURLCodebase=false -Dcom.sun.jndi.cosnaming.object.trustURLCodebase=false -Dlog4j2.formatMsgNoLookups=true -Dlog4j.configurationFile=.\.minecraft\versions\1.12.2-OptiFine\log4j2.xml -Dminecraft.client.jar=.\.minecraft\versions\1.12.2-OptiFine\1.12.2-OptiFine.jar -Djava.net.useSystemProxies=true -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+UseG1GC -XX:G1MixedGCCountTarget=5 -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32m -XX:-OmitStackTraceInFastThrow -XX:MaxInlineLevel=15 -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:TieredCompileTaskTimeout=10000 -XX:ReservedCodeCacheSize=400M -XX:NmethodSweepActivity=1 -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Djava.library.path=.\.minecraft\versions\1.12.2-OptiFine\natives-windows-x86_64 -Dminecraft.launcher.brand=HMCL -Dminecraft.launcher.version=3.10.0.317 -cp .\.minecraft\libraries\optifine\OptiFine\1.12.2_HD_U_G5\OptiFine-1.12.2_HD_U_G5.jar;.\.minecraft\libraries\optifine\launchwrapper-of\2.2\launchwrapper-of-2.2.jar;.\.minecraft\libraries\com\mojang\patchy\1.3.9\patchy-1.3.9.jar;.\.minecraft\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar;.\.minecraft\libraries\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar;.\.minecraft\libraries\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar;.\.minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;.\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.3\jopt-simple-5.0.3.jar;.\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;.\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;.\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;.\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;.\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;.\.minecraft\libraries\io\netty\netty-all\4.1.9.Final\netty-all-4.1.9.Final.jar;.\.minecraft\libraries\com\google\guava\guava\21.0\guava-21.0.jar;.\.minecraft\libraries\org\apache\commons\commons-lang3\3.5\commons-lang3-3.5.jar;.\.minecraft\libraries\commons-io\commons-io\2.5\commons-io-2.5.jar;.\.minecraft\libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;.\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;.\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;.\.minecraft\libraries\com\google\code\gson\gson\2.8.0\gson-2.8.0.jar;.\.minecraft\libraries\com\mojang\authlib\1.5.25\authlib-1.5.25.jar;.\.minecraft\libraries\com\mojang\realms\1.10.22\realms-1.10.22.jar;.\.minecraft\libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar;.\.minecraft\libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar;.\.minecraft\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;.\.minecraft\libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;.\.minecraft\libraries\it\unimi\dsi\fastutil\7.1.0\fastutil-7.1.0.jar;.\.minecraft\libraries\org\apache\logging\log4j\log4j-api\2.8.1\log4j-api-2.8.1.jar;.\.minecraft\libraries\org\apache\logging\log4j\log4j-core\2.8.1\log4j-core-2.8.1.jar;.\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar;.\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar;.\.minecraft\libraries\com\mojang\text2speech\1.10.3\text2speech-1.10.3.jar;.\.minecraft\versions\1.12.2-OptiFine\1.12.2-OptiFine.jar net.minecraft.launchwrapper.Launch --username zero --version 1.12.2-OptiFine --gameDir .\.minecraft --assetsDir .\.minecraft\assets --assetIndex 1.12 --uuid f5aaebd0216c3b5786ae2b13056f5f33 --accessToken 57ea947e73cc4ce2a32c1ff3b53233f6 --userType msa --versionType "HMCL 3.10.0.317" --tweakClass optifine.OptiFineTweaker --width 854 --height 480

(有个参数--username zero,你要用的话直接修改成你自己的用户名就行)

就是这么简单,祝大家玩的愉快!