【图一乐】在 VisionFive2 上用 jre8-zero 纯解释运行 Minecraft 1.12.2

TL;DR: 启动服务器需要 ~1h30m,每 tick 用时超过 60s 所以刚启动就会被 watchdog 视作崩服。

发行版选择

众所周知,Minecraft 1.16 之前的版本都只能跑在 java 8 上,然而各大发行版 drop java8 的时间差不多与支持 riscv 的时间重合(比如 Rocky Linux 10 支持 riscv 但是 java 8 只支持到 el9),各大 java 提供商也不提供 java 8 for riscv(dragonwell extended edition 最低到 java 11)。

但!是!

有这么一个发行版,既支持 riscv 又有 java 8(的 ZeroVM 解释器版),那就是 AAAAAAAAAAAAAAAAAAAAArch btw(的 riscv 版)。

MC,启动!

[root@localhost ~]# date && java -jar server.jar
Fri May 15 03:46:08 UTC 2026
[03:49:38] [Server thread/INFO]: Starting minecraft server version 1.12.2
[03:49:38] [Server thread/WARN]: To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
[03:49:38] [Server thread/INFO]: Loading properties
[03:49:38] [Server thread/INFO]: Default game type: SURVIVAL
[03:49:38] [Server thread/INFO]: Generating keypair
[03:50:21] [Server thread/INFO]: Starting Minecraft server on *:25565
[03:50:21] [Server thread/INFO]: Using default channel type
[03:50:22] [Server thread/INFO]: Preparing level "world"
[03:50:33] [Server thread/INFO]: Loaded 488 advancements
[03:51:36] [Server thread/INFO]: Preparing start region for level 0
[03:51:40] [Server thread/INFO]: Preparing spawn area: 0%
[03:51:44] [Server thread/INFO]: Preparing spawn area: 0%
[03:51:48] [Server thread/INFO]: Preparing spawn area: 0%
[03:51:51] [Server thread/INFO]: Preparing spawn area: 0%
[03:51:55] [Server thread/INFO]: Preparing spawn area: 0%
[03:51:59] [Server thread/INFO]: Preparing spawn area: 0%
[03:52:02] [Server thread/INFO]: Preparing spawn area: 1%
[03:52:06] [Server thread/INFO]: Preparing spawn area: 1%
[03:52:10] [Server thread/INFO]: Preparing spawn area: 1%
[03:52:13] [Server thread/INFO]: Preparing spawn area: 1%
[03:52:17] [Server thread/INFO]: Preparing spawn area: 1%
[03:52:20] [Server thread/INFO]: Preparing spawn area: 1%
[03:52:24] [Server thread/INFO]: Preparing spawn area: 2%
(省略 114514 行)
[05:21:19] [Server thread/INFO]: Preparing spawn area: 99%
[05:21:26] [Server thread/INFO]: Preparing spawn area: 99%
[05:21:35] [Server thread/INFO]: Preparing spawn area: 99%
[05:21:55] [Server thread/INFO]: Preparing spawn area: 99%
[05:22:02] [Server thread/INFO]: Preparing spawn area: 99%
[05:22:10] [Server thread/INFO]: Preparing spawn area: 99%
[05:22:17] [Server thread/INFO]: Done (5514.283s)! For help, type "help" or "?"
[05:23:18] [Server Watchdog/FATAL]: A single server tick took 60.00 seconds (should be max 0.05)
[05:23:18] [Server Watchdog/FATAL]: Considering it to be crashed, server will forcibly shutdown.
[05:23:18] [Server Watchdog/ERROR]: This crash report has been saved to: /root/./crash-reports/crash-2026-05-15_05.23.18-server.txt
[05:23:18] [Server Shutdown Thread/INFO]: Stopping server
[05:23:18] [Server Shutdown Thread/INFO]: Saving players
[05:23:18] [Server Shutdown Thread/INFO]: Saving worlds
[05:23:18] [Server Shutdown Thread/INFO]: Saving chunks for level 'world'/overworld
[05:23:19] [Server Shutdown Thread/ERROR]: Failed to save chunk
java.util.ConcurrentModificationException: null
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911) ~[?:1.8.0_492]
	at java.util.ArrayList$Itr.next(ArrayList.java:861) ~[?:1.8.0_492]
	at oo.a(SourceFile:686) ~[server.jar:?]
	at oo.a(SourceFile:669) ~[server.jar:?]
	at aye.a(SourceFile:272) ~[server.jar:?]
	at aye.a(SourceFile:116) [server.jar:?]
	at on.c(SourceFile:147) [server.jar:?]
	at on.a(SourceFile:166) [server.jar:?]
	at oo.a(SourceFile:881) [server.jar:?]
	at net.minecraft.server.MinecraftServer.a(SourceFile:378) [server.jar:?]
	at net.minecraft.server.MinecraftServer.u(SourceFile:403) [server.jar:?]
	at net.minecraft.server.MinecraftServer$2.run(SourceFile:746) [server.jar:?]
[05:23:19] [Server Shutdown Thread/ERROR]: Failed to save chunk
java.util.ConcurrentModificationException: null
	at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1211) ~[?:1.8.0_492]
	at java.util.TreeMap$KeyIterator.next(TreeMap.java:1265) ~[?:1.8.0_492]
	at oo.a(SourceFile:686) ~[server.jar:?]
	at oo.a(SourceFile:669) ~[server.jar:?]
	at aye.a(SourceFile:272) ~[server.jar:?]
	at aye.a(SourceFile:116) [server.jar:?]
	at on.c(SourceFile:147) [server.jar:?]
	at on.a(SourceFile:166) [server.jar:?]
	at oo.a(SourceFile:881) [server.jar:?]
	at net.minecraft.server.MinecraftServer.a(SourceFile:378) [server.jar:?]
	at net.minecraft.server.MinecraftServer.u(SourceFile:403) [server.jar:?]
	at net.minecraft.server.MinecraftServer$2.run(SourceFile:746) [server.jar:?]
[05:23:22] [Server Shutdown Thread/ERROR]: Failed to save chunk
java.util.ConcurrentModificationException: null
	at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1211) ~[?:1.8.0_492]
	at java.util.TreeMap$KeyIterator.next(TreeMap.java:1265) ~[?:1.8.0_492]
	at oo.a(SourceFile:686) ~[server.jar:?]
	at oo.a(SourceFile:669) ~[server.jar:?]
	at aye.a(SourceFile:272) ~[server.jar:?]
	at aye.a(SourceFile:116) [server.jar:?]
	at on.c(SourceFile:147) [server.jar:?]
	at on.a(SourceFile:166) [server.jar:?]
	at oo.a(SourceFile:881) [server.jar:?]
	at net.minecraft.server.MinecraftServer.a(SourceFile:378) [server.jar:?]
	at net.minecraft.server.MinecraftServer.u(SourceFile:403) [server.jar:?]
	at net.minecraft.server.MinecraftServer$2.run(SourceFile:746) [server.jar:?]
[05:23:27] [Server Shutdown Thread/ERROR]: Failed to save chunk
java.util.ConcurrentModificationException: null
	at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1211) ~[?:1.8.0_492]
	at java.util.TreeMap$KeyIterator.next(TreeMap.java:1265) ~[?:1.8.0_492]
	at oo.a(SourceFile:686) ~[server.jar:?]
	at oo.a(SourceFile:669) ~[server.jar:?]
	at aye.a(SourceFile:272) ~[server.jar:?]
	at aye.a(SourceFile:116) [server.jar:?]
	at on.c(SourceFile:147) [server.jar:?]
	at on.a(SourceFile:166) [server.jar:?]
	at oo.a(SourceFile:881) [server.jar:?]
	at net.minecraft.server.MinecraftServer.a(SourceFile:378) [server.jar:?]
	at net.minecraft.server.MinecraftServer.u(SourceFile:403) [server.jar:?]
	at net.minecraft.server.MinecraftServer$2.run(SourceFile:746) [server.jar:?]
[root@localhost ~]# java -version
openjdk version "1.8.0_492"
OpenJDK Runtime Environment (build 1.8.0_492-b09)
OpenJDK 64-Bit Zero VM (build 25.492-b09, interpreted mode)

显然这是不可玩的

HMCL 的更新日志 中提到,国内还真有一家搞 jdk8u with jit 的 riscv port 的公司 banshanjdk-8,但没有开放下载。

或许,用 x86 的 指令转译跑 x86 的 jre 都会比解释执行快(?)不过 VisionFive2 没有 RVV,felix86 没法用,Box64 还没试,拿到 K3 的小伙伴可以试试这条路子。

哦其实 1.12.2 原版服务端是能在 jre 25 跑起来的,只是一些 mod 不行(

1 个赞