2024年6月

今天更新发现了这个问题,使用LinuxGSM更新到1.21后
执行java -Xmx6144M -jar ./minecraft_server.jar nogui
错误: 加载主类 net.minecraft.bundler.Main 时出现 LinkageError

    java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

意思是本机的JDK版本比游戏二进制文件版本编译所用的版本低了,Debian12默认OpenJDK版本是17对应class file version 61,65对应的应该是OpenJDK21,所以我得去手动安装OpenJDK21+

解决方案

wget https://download.java.net/java/GA/jdk22.0.1/c7ec1332f7bb44aeba2eb341ae18aca4/8/GPL/openjdk-22.0.1_linux-x64_bin.tar.gz
tar xvf openjdk-22.0.1_linux-x64_bin.tar.gz jdk-22.0.1/
sudo mv jdk-22.0.1/ /usr/local/jdk-22
sudo nano /etc/profile
添加:

setting jdk22 shehl path

export JAVA_HOME=/usr/local/jdk-22/
export PATH=$JAVA_HOME/bin:$PATH
保存
source /etc/profile
java --version

如果你完全按照我的操作进行那就得到如下输出

openjdk 22.0.1 2024-04-16
OpenJDK Runtime Environment (build 22.0.1+8-16)
OpenJDK 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)
现在可以返回启动mc服务器了。
cd ~ && ./mcserver monitor

后记

难怪https://linuxgsm.com/servers/mcserver/ 上Minimum Recommended Distrosy要求Debian13
其实就是因为Debian12 官方仓库的JDK最高已经锁死17了。

洗了个澡刷刷b站,竟然碰到一个在介绍中共情报工作者“李白”的视频下面玩历史虚无主义的傻逼。
一边享受着中共革命先烈拿命换来的国家福利,一边假装中立宣称不支持国共两党,实则是历史和道德两门课一个都没学好的九漏鱼。
本来洗完澡打开pc冲浪挺舒服,碰见这种垃圾人真的是晦气。

为什么使用WSL?

很遗憾我的主要设备X99 E5 2683V4 目前用途是打游戏,所以我不得不使用Windows,希望有一天我能在Linux发行版上玩自己喜欢的游戏。

安装WSL2

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。

参见:如何使用 WSL 在 Windows 上安装 Linux
wsl --set-default-version 2 #确保任何版本的Windows10在下一步操作时默认使用wsl2
wsl --install -d Debian
接下来你会被提示设置账户密码

安装必要的工具

sudo apt update && sudo apt upgrade
sudo apt install gnupg openssh-client # 在我操作时发现后者已经默认安装

导入密钥

我把我的完整密钥在一个U盘里存了一份,插上U盘,路径为E:\Keys

cd /mnt/e/Keys
gpg --import all_keys.asc
接下来的操作:为gpg-agent启用ssh支持,启动gpg-agent服务,指定使用gpg-agent作为SSH代理,指定用于SSH认证的key,更新gpg-agent配置
可以参照我的另一篇文章在Termux 里使用GPG密钥登录ssh服务器

一番倒腾后,现在输入ssh xfox.fun 输入密钥密码我就可以连接到我的服务器了。
顺便去看了一眼IDC的账单,05/07/2023到期,暂时不用再担心续费。