본문 바로가기
IT/NAS

마인크래프트 서버 실행 안되는 문제 1.17버전 이상!!

by ITeaStory 2021. 6. 30.

앞서서 마인크래프트 서버를 시놀로지 NAS에서 제공하는 Docker 패키지로 설치해봤습니다.
시놀로지 NAS 마인크래프트 서버 만들기! #1/3

 

시놀로지 NAS 마인크래프트 서버 만들기! #1/3

NAS로 마인크래프트 서버를? 시놀로지 NAS로 마인크래프트 서버를 만들어 볼 겁니다. 예전에 DS215j로 시도했다가 실패했던 것이죠. DS215j는 사양이 마인크래프트 서버를 돌리기엔 많이 낮아서 문제

iteastory.com

이때만 해도 openjdk-8로도 잘 동작했는데요 이제 서버의 버전이 1.17이 되면서 jdk버전을 16 이상이 되어야 서버가 실행이 되네요.
한 분이 댓글로 마크 서버 버전이 1.17이 되면서 jdk 버전이 1.6 이상이어야 된다는 말씀을 하시더라고요

그래서 확인해봤더니 기존 openjdk-8로는 서버 구동이 안 되더군요
아래의 에러 메시지처럼 버전 이야기를 주저리주저리 합니다.

root@java-contaianer:~/test-server# java -Xmx1024M -Xms1024M -jar server.jar nogui
Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

마인크래프트 서버 버전이 1.17 이상이고 위와 같은 오류 메시지가 뜨면 사용하고 있는 java의 버전을 확인해보세요
java 버전을 확인했을 때 openjdk 버전이 1.8.X로 나온다면 jdk를 교체하셔야 합니다.

우리가 쉽게 하겠다고 docker에서 java이미지를 그냥 가져와서 썼더니 안 되는 게 많네요.

sudo apt install openjdk-16-jdk-headless

위 명령으로 높은 버전의 openjdk를 설치하려고 했더니 패키지를 찾을 수 없다고 합니다.

그럼 수동으로 설치할 수밖에 없어졌습니다.
별 수가 없으니 한번 해보도록 합시다.

1. jdk 다운로드하기

먼저 jdk를 다운로드해야 되겠죠?
바닐라면 jre 버전만 올려주면 된다고 하던데 모드 서버면 일부 모드들이 jdk를 요구하기도 한다네요.
우리는 jdk 버전을 올려보도록 하겠습니다.

아래 링크의 사이트로 가면 jdk16 버전을 받을 수 있습니다.
https://jdk.java.net/16/

 

JDK 16.0.1 GA Release

JDK 16.0.1 General-Availability Release This page provides production-ready open-source builds of the Java Development Kit, version 16, an implementation of the Java SE 16 Platform under the GNU General Public License, version 2, with the Classpath Exce

jdk.java.net

우리는 linux 서버니까 linux용 파일을 받겠습니다.

Linux/x64 파일을 다운받자

tar.gz (sha256)이라는 곳이 링크인데 Linux/x64용을 받기 위해 다운로드 주소를 복사해줍시다.
그리고 기존의 마인크래프트 서버로 돌아와 wget 명령어로 다운로드해줍니다.
아래 파일 주소는 변경될 수 있습니다!

wget https://download.java.net/java/GA/jdk16.0.1/7147401fd7354114ac51ef3e1328291f/9/GPL/openjdk-16.0.1_linux-x64_bin.tar.gz

저는 디렉토리(~)에 다운로드했습니다.
그럼 홈 디렉토리 밑에 우리가 받은 jdk16의 압축파일이 있을 거예요.

저는 openjdk-16.0.1_linux-x64_bin.tar.gz네요

 

2. jdk16 압축 풀기

다운로드했으면 이제 압축을 풀어야 되겠죠?
리눅스 익숙하지 않으면 이런 것도 어렵습니다.

명령어로 쳐야 되지만 아주 간단합니다.
아래 명령어로 방금 받은 파일의 압축을 풀어줍시다.

tar xvf openjdk-16.0.1_linux-x64_bin.tar.gz

압축을 풀고 나면 jdk-16.0.1라는 디렉토리가 보일 거예요.
그리고 이 디렉토리 밑에 있는 bin이라는 디렉토리 밑에 우리가 필요한 java가 있습니다.

 

3. 마인크래프트 서버 실행

일전에 우리는 서버에서 바로 서버를 실행할 때 아래처럼 java를 경로 없이 바로 불러와서 실행했습니다.

java -Xmx1024M -ms1024M -jar server.jar nogui

그런데 이렇게 하면 기존에 설치되어 있던 java가 실행돼서 새로 설치한 java가 실행되지 않죠
우리가 새로 설치해준 java로 실행하려면 이 java의 경로를 명령줄에 함께 넣어줘야 합니다.

전 홈 디렉토리 하위에서 작업을 해 ~ 밑에 jdk-16.0.1 디렉토리가 생겼죠
그럼 마인크래프트 서버를 아래처럼 실행해주면 됩니다.
물론 저 명령어를 실행하는 위치는 내가 설치한 마인크래프트 서버의 jar 파일이 있는 곳입니다.

~/jdk-16.0.1/bin/java -Xmx1024M -ms1024M -jar server.jar nogui

이렇게 하면 1.17 이상 버전의 마인크래프트 서버도 구동하실 수 있습니다.

 

경로를 입력하는 게 귀찮으면 아래 글을 참고하시면 도움이 될 거예요.

시놀로지 NAS 마인크래프트 서버 쉽게 실행하기

 

시놀로지 NAS 마인크래프트 서버 쉽게 실행하기

지난번에 시놀로지 NAS에서 Docker를 사용해 마인크래프트 서버를 여는 방법을 알려드렸습니다. 그런데 항상 서버를 열어놓는다면 모를까 사용할 때만 마인크래프트 서버를 일일이 그 길고 긴 명

iteastory.com

 

이게 하기 힘들거나 잘 안되시면 아래 글을 확인해보세요!
1.18.1에서 구동 확인된 좀 더 쉽게 하는 방법이에요

시놀로지 NAS 마인크래프트 서버 만들기 최신 (1.18.1 버전)

 

시놀로지 NAS 마인크래프트 서버 만들기 최신 (1.18.1 버전)

시놀로지 NAS에서 마인크래프트 서버를 열어봅시다. 이전 포스팅에서 NAS에서 Docker를 사용해서 마인크래프트 서버를 열어봤는데요 버전이 높아지면서 예전 방법이 잘 안 되는 것 같아 새로운 방

iteastory.com