Score:3

ปัญหาในการอัปเดต Java บน Ubuntu 20.04 สำหรับ Minecraft 1.18

ธง in

พยายามอัปเกรด 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$ 
cocomac avatar
cn flag
โปรด [แก้ไข] คำถามของคุณเพื่อรวมผลลัพธ์ของการรัน `java -version` ในเทอร์มินัลหรือไม่
neophytte avatar
in flag
เรียบร้อยแล้วครับ...ขอบคุณครับ
cocomac avatar
cn flag
โปรดทราบว่าฉันคิดผิดและต้องใช้ `openjdk-17-jre`
Score:7
ธง cn

Minecraft: Java Edition เวอร์ชัน 1.18 จะใช้ไม่ได้กับ Java 8 แต่ต้องใช้ Java 17 หาก Minecraft เป็นสิ่งเดียวที่คุณใช้ Java ฉันขอแนะนำให้ถอนการติดตั้งสิ่งที่คุณมีตอนนี้:

sudo apt ลบ default-jre default-jdk
sudo apt ลบอัตโนมัติ

ตอนนี้ติดตั้ง OpenJDK 17:

อัปเดต sudo apt
sudo apt ติดตั้ง openjdk-17-jre

เราไม่ติดตั้ง JDK เพราะมันมีไว้สำหรับคอมไพล์โปรแกรม Java คุณไม่ใช่ แต่คุณกำลังเรียกใช้ (Minecraft) ดังนั้นคุณจึงต้องการ JRE เท่านั้น

เวอร์ชั่นมายคราฟ เวอร์ชันจาวา
1.16 16
1.17 16
1.18 17
neophytte avatar
in flag
ขอบคุณ มันได้ผล ใช่ เรียกใช้ minecraft บนนั้นเท่านั้น
G Ugauga avatar
pe flag
ฉันรันจาวา 17 บนคูบุนตู 21.10 ฉันติดตั้ง Oracle java เพราะฉันไม่แน่ใจว่า openjdk ใช้ได้หรือเปล่า ตอนนี้ต้องขอบคุณ [cocomac](https://askubuntu.com/users/1438484/cocomac) ฉันรู้แล้ว ฉันใช้วิธีนี้จาก [linuxuprising](https://www.linuxuprising.com/2021/09/how-to-install-oracle-java-17-lts-on.html)
cocomac avatar
cn flag
@GUgauga ยินดีช่วยเหลือ ฉันใช้ OpenJDK (หรือบน Windows, [Adoptium](https://adoptium.net/) ซึ่งเคยเรียกว่า AdoptOpenJDK) สำหรับทุกอย่าง และฉันก็ไม่ต้องใช้ Oracle Java มาหลายปีแล้ว ดังนั้นคุณน่าจะสบายดี เพื่อใช้ OpenJDK สำหรับ Minecraft (และสิ่งอื่นๆ ด้วย)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา