พยายามอัปเกรด Java เป็นเซิร์ฟเวอร์ Minecraft เวอร์ชันล่าสุด (v1.18) ฉันมีเรื่องเล็กน้อยเพราะเซิร์ฟเวอร์เริ่มใช้ Ubuntu 19.x ดังนั้นฉันจึงแปลงเป็น 20.04 หลังจากพบสถานที่ที่อนุญาต เพื่ออัปเดตแพ็คเกจทั้งหมดและทำการอัปเกรด
หลังจากนี้ ฉันได้ติดตั้ง JRE แล้ว นี่เป็นคำสั่งเดียวกับที่แสดงเวอร์ชันที่ฉันเป็น:
mortimer@mineraft:/home/minecraft$ sudo apt-get install default-jre
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา
กำลังอ่านข้อมูลสถานะ...
default-jre เป็นเวอร์ชันใหม่ล่าสุดแล้ว (2:1.11-72)
0 อัพเกรด, 0 ติดตั้งใหม่, 0 ลบและ 0 ไม่อัพเกรด
ในทำนองเดียวกันกับ JDK:
mortimer@mineraft:/home/minecraft$ sudo apt-get install default-jdk
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา
กำลังอ่านข้อมูลสถานะ...
default-jdk เป็นเวอร์ชันใหม่ล่าสุดแล้ว (2:1.11-72)
0 อัพเกรด, 0 ติดตั้งใหม่, 0 ลบและ 0 ไม่อัพเกรด
กำลังเรียกใช้การอัปเดตทางเลือก:
mortimer@mineraft:/home/minecraft$ sudo อัพเดตทางเลือก --config java
มี 4 ตัวเลือกสำหรับจาวาทางเลือก (ให้ /usr/bin/java)
สถานะลำดับความสำคัญของเส้นทางที่เลือก
--------------------------------------------- ----------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 โหมดอัตโนมัติ
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 โหมดแมนนวล
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 โหมดแมนนวล
3 /usr/lib/jvm/jdk-16.0.1/bin/java 0 โหมดแมนนวล
* 4 /usr/local/java/jre1.8.0_311/bin/java 1 โหมดแมนนวล
กด <enter> เพื่อคงตัวเลือกปัจจุบัน[*] หรือพิมพ์หมายเลขการเลือก:
แต่ถ้าฉันรันคำสั่งเริ่มต้น Q&D:
mortimer@mineraft:/home/minecraft$ cat start.sh
#!/bin/bash
sudo java -Xmx6G -Xms4G -jar /home/minecraft/spigot-1.18.jar nogui > /dev/console
ฉันได้รับข้อผิดพลาดที่ดีจากเซิร์ฟเวอร์โดยระบุว่า:
mortimer@mineraft:/home/minecraft$ sudo ./start.sh
ข้อผิดพลาด: เกิดข้อผิดพลาด JNI โปรดตรวจสอบการติดตั้งและลองอีกครั้ง
ข้อยกเว้นในเธรด "main" java.lang.UnsupportedClassVersionError: org/bukkit/craftbukkit/bootstrap/Main ได้รับการคอมไพล์โดย Java Runtime เวอร์ชันล่าสุด (ไฟล์คลาสเวอร์ชัน 60.0) Java Runtime เวอร์ชันนี้รู้จักเฉพาะไฟล์คลาส เวอร์ชันสูงสุด 52.0
ที่ java.lang.ClassLoader.defineClass1 (Native Method)
ที่ java.lang.ClassLoader.defineClass(ClassLoader.java:756)
ที่ java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
ที่ java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
ที่ java.net.URLClassLoader.access$100(URLClassLoader.java:74)
ที่ java.net.URLClassLoader$1.run(URLClassLoader.java:369)
ที่ java.net.URLClassLoader$1.run(URLClassLoader.java:363)
ที่ java.security.AccessController.doPrivileged (Native Method)
ที่ java.net.URLClassLoader.findClass(URLClassLoader.java:362)
ที่ java.lang.ClassLoader.loadClass(ClassLoader.java:418)
ที่ sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
ที่ java.lang.ClassLoader.loadClass(ClassLoader.java:351)
ที่ sun.launcher.LauncherHelper.checkAndLoadMain (LauncherHelper.java:601)
mortimer@mineraft:/home/minecraft$
ใครช่วยอธิบายสิ่งที่ฉันทำผิดได้ไหม
ขอบคุณ
[แก้ไข - เพิ่ม java -version]
mortimer@mineraft:/home/minecraft$ java -เวอร์ชั่น
รุ่นจาวา "1.8.0_311"
สภาพแวดล้อมรันไทม์ Java(TM) SE (รุ่น 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (รุ่น 25.311-b11, โหมดผสม)
mortimer@mineraft:/home/minecraft$