按照我前面一个文章的思路,我已经开启了一个服务器。在环境已有Java 11的情况下,我继续安装了一个1.12.2版本的Forge服务器。(关于一部分前期的教程,见我上一篇文章)
在服务端搭建Forge服务器,需要先下载开服包。由于服务器那边感觉网速比较好,所以我直接下载forge安装包。
进入Minecraft Forge官网,在左边的菜单栏选择到你需要的版本,我选择的是1.12.2版本。
可以看到在右侧的表格中有Downloads一栏。在Installer这一选项中,先不要急着下载,先右键,复制链接。你可以看到这样的一个链接:
https://adfoc.us/serve/sitelinks/?id=271228&url=https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar
这里是有adfoc广告的。不妨把https://maven.minecraftforge.net/
前面的东西都删掉,剩下的就是Forge链接:
https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar
用putty登入服务器后,进入一个新的目录,然后使用wget指令下载:
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar
等待一会,下载完成以后我们运行,但是我们没有GUI界面,所以这样安装:
java -jar forge-1.12.2-14.23.5.2855-installer.jar nogui --installServer
安装完成以后运行:
java -jar forge-1.12.2-14.23.5.2855.jar nogui
结果,给我卡出了bug:
A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)
at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34)
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
... 6 more
Java什么的我根本不懂。在网上查证以后,我终于想起来了:Minecraft Forge高版本只能用Java8或以下的。所以,我们如果需要在服务端运行多个服务端,我们就需要多个Java版本。
先使用yum安装Java8。这里为了能够分配超过1G的内存,我们需要安装64位版本:
yum install java-1.8.0-openjdk.i686
然后重点来了!就是这个指令,你可以输入以下看看:
update-alternatives --config java
然后控制台提示:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/bin/java)
2 java-1.8.0-openjdk.i386 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.i386/jre/bin/java)
Enter to keep the current selection[+], or type selection number:
输入2,然后按下回车,就会切换到java8;如果输入1,按下回车,就会切换到java11。
当切换到Java8以后,再次运行服务器,服务器正常运行!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。