前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[跳坑] Minecraft Forge 服务端 搭建教程 和Java多版本管理

[跳坑] Minecraft Forge 服务端 搭建教程 和Java多版本管理

原创
作者头像
Passthem
修改2021-08-02 11:13:07
9.1K0
修改2021-08-02 11:13:07
举报
文章被收录于专栏:我的零基础开发入门历程

按照我前面一个文章的思路,我已经开启了一个服务器。在环境已有Java 11的情况下,我继续安装了一个1.12.2版本的Forge服务器。(关于一部分前期的教程,见我上一篇文章

前期的文件准备

在服务端搭建Forge服务器,需要先下载开服包。由于服务器那边感觉网速比较好,所以我直接下载forge安装包。

进入Minecraft Forge官网,在左边的菜单栏选择到你需要的版本,我选择的是1.12.2版本。

可以看到在右侧的表格中有Downloads一栏。在Installer这一选项中,先不要急着下载,先右键,复制链接。你可以看到这样的一个链接:

代码语言:txt
复制
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链接:

代码语言:txt
复制
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指令下载:

代码语言:txt
复制
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界面,所以这样安装:

代码语言:txt
复制
java -jar forge-1.12.2-14.23.5.2855-installer.jar nogui --installServer

安装完成以后运行:

代码语言:txt
复制
java -jar forge-1.12.2-14.23.5.2855.jar nogui

结果,给我卡出了bug:

代码语言:txt
复制
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位版本:

代码语言:txt
复制
yum install java-1.8.0-openjdk.i686

然后重点来了!就是这个指令,你可以输入以下看看:

代码语言:txt
复制
update-alternatives --config java

然后控制台提示:

代码语言:txt
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期的文件准备
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档