本章给大家介绍一下启动参数的类型
默认JVM参数
通过上一页教程,我们观察Wiki可以看出几个默认JVM参数【这类参数属于写死进启动参数里的,不能被修改的参数】:
参数 | 功能 |
---|---|
-Xmn256m | 新生代堆大小为256MB |
-Xmx<最大内存>m | 指定MC最大可使用内存大小为256MB |
-XX:+UseG1GC | 开启G1 |
-XX:-UseAdaptiveSizePolicy | 自动选择年轻代区大小和相应的Survivor区比例 |
-XX:-OmitStackTraceInFastThrow | 省略异常栈信息从而快速抛出 |
-Dfml.ignoreInvalidMinecraftCertificates=True | 忽略MC无效的证书 |
-Dfml.ignorePatchDiscrepancies=True | 忽略修补程序差异 |
-Dlog4j2.formatMsgNoLookups=true | 对于Log4J输出的日志只格式化但不查询 |
-XX:HeapDumpPath= | |
MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump | MC默认对于Windows的启动参数。【每个版本必须】 |
-Xss1M | 32位Windows特有的参数 |
-XstartOnFirstThread | MC会在第一个线程启动 |
-Dminecraft.launcher.brand=<启动器名称> | 对于≤1.12.2版本可以不需要 |
-Dminecraft.launcher.version=<启动器版本> | 对于≤1.12.2版本可以不需要 |
"-Dos.name=Windows 10" | 对于≤1.12.2版本以及Windows10以下可以不需要 |
-Dos.version=10.0 | 对于≤1.12.2版本以及Windows10以下可以不需要 |
-Dlog4j.configurationFile=<log4j文件路径>\client-1.12.xml | 这个对于Log4J的配置文件可以不需要。 |
-Djava.library.path=<natives文件夹路径> | 【每个版本必须】 |
-cp "<Minecraft所有类库路径>" | 【每个版本必须】 |
其中,<最大内存>用于在启动器内填入启动与运行所需要的最大内存。
然后,<log4j文件路径>\client-1.12.xml代表着你对于Log4J的配置文件路径在哪里。
再者,<natives文件路径>则代表了你解压出去的Natives文件【也就是MC在启动游戏的时候所需要调用的DLL类库】放在哪里。【natives一般会放在AppData\Local\Temp文件目录下。官启的逻辑】
还有,<Minecraft所有类库路径>,这个一般是你下载后的Minecraft Libraries路径,这里的路径我们晚点再说。
上述说到的【对于≤1.12.2可以不需要】代表在1.12.2版本以下可有可无,我给的建议是不要。仅此而已。
这就是MC的默认JVM参数,也就是说每个MC启动的时候都必须附带这些参数。除了我会在里面输入可以不需要的参数以外。然后还有一些没有写什么需要什么不需要的,这就是大家可以添加的参数了。
额外JVM参数
这个就是各位可以添加额外JVM参数的地方,这时,如果我们通过wmic获取PCL2或者HMCL的启动参数之时,我们就会发现其实两个的启动参数都不一样。有部分启动器的JVM参数较多,部分的较少。
拿最经典的例子来说:【-Djava.net.preferIPv4Stack=true】这个参数原本是让MC优先选取本机中的IPv4地址。但是最近有玩家说IPv6也可以联机,这也就是说明这个参数不能有才能联机。这也是为什么在PCL2以前的某一篇爱发电里说过移除了这个启动参数的原因。
但是,又有一个问题出现了,在部分的联机中,又必须不能使用IPv6,所以又必须添加进这个参数,因此,这也给了玩家们一种选择,即【选择添加额外JVM参数】,这也是很多启动器能够让玩家自定义MC的JVM参数的原因了。
还有一个问题,额外JVM参数如果我乱输入几串,很可能会造成无法启动的bug,因此,部分启动器会给玩家一个警告,即【非专业人士请勿修改本栏】。
默认游戏参数
默认游戏参数,其实在wiki里面已经说得很明白了哦! 下面列举出MC必要的所有游戏参数
参数 | 功能 |
---|---|
net.minecraft.client.main.Main | MC主类名,对于Vanilla、Forge、Fabric、Quilt均不一致。这个后面再说。 |
--username | 后接用户名。 |
--version | 后接游戏版本。 |
--gameDir | 后接游戏路径。 |
--assetsDir | 后接资源文件路径。 |
--assetIndex | 后接资源索引版本。 |
--uuid | 后接用户UUID。 |
--accessToken | 后接登录令牌。 |
--clientId | 后接Minecraft客户端ID【一般会用在服务器里面指定,然后被服务器接收从而作为你的身份证明】。【ps:别的启动器一般保留原值。】 |
--xuid | 另一种UUID。【暂不清楚用途,别的启动器一般保留原值。】 |
--userType | 后接用户类型。 |
--versionType | 后接版本类型,会显示在游戏主界面右下角。以及游戏内F3的左上角。 |
好了,这些大约就是MC的游戏参数了,此参数根据所选的模组加载器的不同而改变。一般来说,启动器内甚至会内置一个【额外游戏参数】的选项,也依旧是非专业人士修改。
额外游戏参数
这里有以下几个:
参数 | 功能 |
---|---|
--width | 后接窗口宽度。 |
--height | 后接窗口高度。 |
--server | 后接服务器地址,游戏进入时将直接连入服务器 |
--port | 后接服务器的端口号 |
--fullScreen | 是否全屏【单独存在,后面无需接参数。如果加了这个则width、height参数均无效。】 |
--demo | 是否开启试玩模式 |
其中,width和height参数不会让玩家在额外游戏参数里设定,而是直接在启动器内给玩家两个输入框进行设定。就这样了!
然后,server和port参数一般启动器内都会给一个【输入一打开MC直接进入的服务器地址、端口】,所以这两个参数一般不会让玩家主动填在额外游戏参数里面。
然后是fullScreen,这个参数在启动器内一般是给予一个复选框,是否在打开MC的时候自动全屏,这时也就是打开MC的时候窗口右上角的方框按钮自动被按下一样。这个参数也一般不会让玩家主动填在额外游戏参数里面。
最后就是demo参数,这个参数启动器一般不会提供复选框或者单选框,但是会在额外游戏参数中的输入框的【Hint提示】中教玩家如何输入额外游戏参数时拿这个参数做例子。
在23w14a以上的额外启动参数
23w14a以上新增了以下几个启动参数:
参数 | 功能 |
---|---|
--quickPlayPath | 指定一个相对于运行目录的日志记录的路径【后接路径】 |
--quickPlaySinglePlayer | 指定一个单人模式地图【后接名称】 |
--quickPlayMultiPlayer | 指定一个多人模式服务器【后接IP与端口】 |
--quickPlayRealms | 指定一个Realms的代号【后接你朋友的Realms代号】 |
参见示例:
示例 | 功能 |
---|---|
--quickPlayPath "logs/fancy.log" | 将log日志输出在【.minecraft/logs/fancy.log】下 |
--quickPlaySinglePlayer "New World" | 指定一进游戏就直接进入New World这个单人世界 |
--quickPlayMultiPlayer "localhost:12345" | 指定一进游戏就直接进入localhost,且端口为12345的服务器 |
--quickPlayRealms 1234 | 指定一进游戏就直接进入1234代号对应的Realms中。 |
其中,以上部分参数必须使用正版登录,否则可能会失效噢!
同时移除了以下几个启动参数:
参数 |
---|
--server |
--port |
在这里,我们的Wiki已经为我们写好了有关于此部分的所有特性!参见此网址,向下滑动直到找到【移除了启动参数】一栏。
那么,在之后的章节中,我只会教大家如何拼接基本的Minecraft启动参数,对于以上几个新增的,我就不管了!
总结
游戏参数总结:只有这一点点的额外游戏参数,多了没有,少了可以!因此我不建议大家在启动器里写让玩家输入额外游戏参数的输入框,只需要写一个额外JVM参数的框就可以了。
这就是MC的启动参数部分,我们将所有启动参数拼接完成之后,利用程序调用cmd执行命令的函数对其进行执行即可启动MC!
其中,默认参数是每个MC启动时必须添加的参数,其次,额外的参数为非必须参数哦!