본문 바로가기
IT/NAS

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

by Tristesse 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

 

반응형

댓글17

  • HL 2021.07.08 23:32

    ㅠㅠ 감사합니다 덕분에 1.17 서버도 열기 성공했어요
    답글

  • 이준혁 2021.07.24 19:11

    근데 만약 기존 마인크래프트 서버가없고 새로 만드는 중에 이런 에러가 뜨면 어떻하나요?

    답글

    • BlogIcon Tristesse 2021.07.24 21:54 신고

      같은 에러라면 여기서 알려드린 방법으로 해결 가능해요
      마인크래프트 유무의 차이가 아니라 서버의 자바 버전 문제기 때문이에요

  • moon 2021.07.26 13:40

    압축파일이 다운로드된 위치가 ~이 아닌거같은데 이 위치 확인은 어떻게 하나요?
    답글

    • BlogIcon Tristesse 2021.07.26 13:43 신고

      명령어 입력한 위치에 있으시면 pwd로 현재 위치를 알 수 있구요
      현재 위치에 파일/디렉토리 확인하시려면 ls 명령어 입력하시면 되세요
      디렉토리 이동은 cd로 하시면 되구요

    • BlogIcon moon 2021.07.26 14:18

      파일위치는 맞는거 같은데
      ~/minecraft-server/jdk-16.0.2/bin/java -Xms1024M -ms1024M -jar server.jar nogui
      Error: Unable to access jarfile server.jar
      이런 에러가 뜨네요... server.jar가 아니라 다른이름이어서 그런걸까요?

    • BlogIcon Tristesse 2021.07.26 14:24 신고

      네, server.jar 파일은 다운로드 받으신 마인크래프트 서버 파일이름을 넣으셔야 해요

    • BlogIcon moon 2021.07.26 14:58

      덕분에 거의 다했어요! ㅠㅠ 근데 Can't keep up! Is the server overloaded? Running 6571ms or 131 ticks
      behind 이 에러가 뜨긴 하는데 서버는 또 들어가지네요... 원래 이래도 들어가지긴 하나요?

    • BlogIcon Tristesse 2021.07.26 15:58 신고

      나스에서 다른 작업이 많으면 일시적으로 그럴 수 있어요
      혹은 나스의 사양 때문일 수도 있구요

  • ㅇㅅㅇ 2021.08.29 23:17

    안녕하세요 선생님 글 읽고 시놀로지 나스로 서버를 열어볼준비를해보고있습니다. 그런데 도커 설치하고 자바 설치후 부터 터미널이 열려야하는데 열리질 않습니다. 검색을해보면서 차근차근해보았지만 진행이되질않아서 댓글남겨봅니다. 사례는 할테니 서버 열수있게 도움을 좀 받을수있을까요? fakeyou 카카오톡 아이디입니다. 연락주시면 정말 감사하겠습니다!
    답글

  • dumb 2021.11.10 22:01

    선생님
    폴더에 자바 17버전까지 다운받고
    ~/jdk-17.0.1/bin/java -Xmx14024M -Xms4024M -jar server.jar nogui
    bash: /root/jdk-17.0.1/bin/java: No such file or directory

    이런 명령어가 뜨는데 문제점을 찾지를 못하겠는데 알려주실수 있을까요..?ㅠㅠ


    답글

    • BlogIcon Tristesse 2021.11.10 22:54 신고

      /root/jdk-17.0.1/bin/java 이 위치에 java 파일을 찾을 수 없다는 메시지가 뜨네요

      jdk 설치하신 위치가 "/root/jdk-17.0.1"이 맞는지 확인이 필요해 보여요

    • BlogIcon dumb 2021.11.11 00:02

      제가 /home 안에 /dutube라는 폴더를 생성해서
      그 폴더안에 자바 17.0.1알집과 압축을 푼 파일이 있거든요.
      그리고 마크 공식페이지에서 다운받은 server.jar 파일도 dutube 폴더안에 있습니다.
      총 폴더안에 3개의 파일이 있습니다.
      그리고 명령어는 ~/jdk-17.0.1/bin/java -Xmx14024M -Xms4024M -jar server.jar nogui 이렇게 썼는데 혹시 어디 틀린 부분이 있나요?

      자바 폴더 이름 : jdk-17.0.1

      혹시 물결이 아니라
      /home/dutube를 써야하는건가요?

  • Dlt 2021.12.14 16:33

    당신은 나의 구원자
    답글

  • 드워프테마 2022.01.05 14:41

    Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
    java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file v
    ersion 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0

    새로운 버젼부터 반드시 JAVA 17버젼을 사용해야지 되네요 ㅠㅠ
    16 설치하신분 꼭 참고하시길!
    답글