•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
r8 vs r9
......
5454
만약 "java -version 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라는
5555
문구가 뜬다면 자바가 설치되어 있지 않거나, 시스템 환경변수(PATH)에 자바 경로가 설정되지 않은 것이다.
5656
57
* 자바를 설치하려면 [[https://java.com/ko/download/|자바 홈페이지]]로.
57
* 자바를 설치하려면 [[https://www.oracle.com/kr/java/technologies/javase-jdk16-downloads.html|자바 홈페이지]]로. [* 더 빠르게 사용하고 싶다면 [[https://adoptopenjdk.net/?variant=openjdk16&jvmVariant=hotspot|Adopt Open JDK를 사용하는것도 좋다.]] 일반 Java와 설치 방법은 같다.]
58
* 일반적으로 Java를 설치하면 '''대부분은''' 환경 변수가 설정되지만, 일부 환경 변수가 설정되지 않는 경우도 있다.[* 환경 변수가 설정 되었는지 확인하려면, [[윈도우키]]+R 을 누른 후 cmd /k java --version 을 입력해보면 된다.]
5859
* 자바 환경변수를 설정하려면,
5960
1. [[윈도우키]]+Pause 키를 눌러 "시스템"에 들어간다. 만약 Pause키가 없는 경우, 윈도우키+R키를 눌러 control(제어판)을 실행, "제어판\시스템 및 보안\시스템"에 들어가준다.
6061
1. 좌측의 "고급 시스템 설정"에 들어간다.
......
6869
6970
==== 구동기 만들기 ====
7071
## 이 문단은 서버를 만드려고 하는 사람들을 위해 필요한 최소한의 작업을 소개하는 목적으로 사용되기를 희망합니다. 서버 관리에 필수가 아닌 부가적인 구동기 기능을 추가하는 것은 지양합시다.
71
'''구동기'''는 서버 구현 프로그램을 실행하는 명령어를 실행 가능한 파일(.[[배치파일|bat]] 파일)로 만드는 것이다.
72
'''구동기'''는 서버 구현 프로그램을 실행하는 명령어를 실행 가능한 파일[[배치파일]] 파일로 만드는 것이다.
7273
아래 설명과 같이 구동기를 만든 후 '''더블 클릭'''으로 구동기 파일을 실행하면 서버가 켜진다.
7374
74
1) 폴더[* 이 폴더는 서버 월드, 플러그인, 설정 파일이 담길 폴더이므로 신중하게 정하자.] 하나를 만든다.
75
2) 폴더 안에 들어가서 미리 받아 놓은 '''서버 구현물'''(CraftBukkit나 Spigot 등) 파일을 옮겨 넣는다.
75
1) 폴더[* 이 폴더는 서버 월드, 플러그인, 설정 파일이 담길 폴더이므로 신중하게 정하자. 띄어쓰기나 기호가 없는 오로지 영문, 숫자, 하이픈(-) 만으로 된 폴더명을 추천한다.] 하나를 만든다.
76
2) 폴더 안에 들어가서 미리 받아 놓은 '''서버 구현물'''(Spigot이나 Paper 등) 파일을 옮겨 넣는다.[* 어떤 구현물을 써야 할 지 모르겠다면 [[마인크래프트/서버/자바 에디션#s-7.2|여기를]] 클릭해서 확인해보자.]
7677
3) 폴더의 빈 화면에 우클릭 > 새로 만들기 > 텍스트 문서
77
4) 파일 이름을 '''start.txt'''[* 배치 파일 이름은 무엇으로 해도 상관없다.]로 정하고 메모장으로 열어서 아래와 같이 작성한다.
78
4) 파일 이름을 '''start'''[* 배치 파일 이름은 무엇으로 해도 상관없다.]로 정하고 메모장으로 열어서 아래와 같이 작성한다. 만약 뒤에 확장자 ".txt"가 붙은 경우 txt 를 bat 이나 cmd 로 변경해주자.
79
5) 파일을 연다. bat 으로 확장자를 변경한 경우 우클릭>편집을 누르자.
7880
7981
||@echo off
80
java -Xms(자신의 메모리 - 1G) -Xmx(자신의 메모리 - 1G)[* 단 이것은 호스팅 컴퓨터 기준이다. 서버를 연 컴퓨터로 마크를 하려면 2~3G는 빼고 할당해야 한다] -jar '''<서버 파일>.jar'''
82
java -Xms(서버가 구동될 메모리) -Xmx(서버가 구동될 메모리)[* 단 이것은 호스팅 컴퓨터 기준이다. 서버를 연 컴퓨터로 마크를 하려면 최소 4G는 빼고 할당해야 한다] -jar '''<서버 파일>.jar'''
8183
pause||
8284
85
만약 서버 파일을 계속 다시 시작하고 싶지 않다면 @echo off 아래에
86
||cls
87
:start||
88
를 추가하고 pause 아래에
89
||goto start||
90
를 추가하자.
91
8392
{{{+1 {{{#red,#ff0000 '''주의:'''}}}}}} '''<서버 파일>.jar''' 부분을 방금 준비한 서버 구현물의 파일 이름으로 바꾸도록 한다.[* 파일 이름과 확장자명을 올바르게 기입하지 않으면 서버가 켜지지 않는다.] 예) spigot-latest.jar
8493
8594
작성한 구동기 스크립트에 대한 설명은 아래 표와 같다. 필요하면 기호에 맞게 스크립트를 바꿔 써도 좋다.
......
8998
||-Xmx1024M -Xms256M|| 서버를 실행하는 데 할당시킬 메모리 크기[* 플러그인이나 모드가 많거나 동시 접속자가 많으면 더 많은 [[RAM|램]]을 할당할 필요가 있다. M 대신 G를 사용해 기가바이트 단위로 할당 가능하다. 1G=1024M]를 256MB 이상 1024MB 이하로 잡는다. ||
9099
||pause || 일괄적인 처리를 보류한다. 서버 종료시 화면이 갑자기 꺼지지 않아 유용하다. ||
91100
92
5) 메모장을 저장한 후 닫는다.
93
6) start.txt 텍스트 파일 이름을 start'''.bat''' [* 경고가 뜨면 무시하고 실행하면 된다.][* .cmd도 된다.][* 사실 앞부분은글로 해도 된다. 안쪽의 내용물이 중요하기 때문.]으로 바꾼 실행한다.
101
6) 메모장을 저장한 후 닫는다.
102
7) start.txt 텍스트 파일 이름을 start'''.bat''' [* 경고가 뜨면 무시하고 실행하면 된다.][* .cmd도 된다.]으로 바꾼 실행한다. 단, 위에서 파일 확장자를 bat으로 이미 변경하고 편집했을 경우 이 단계는 넘겨도 된다.
94103
95104
* 텍스트 파일 이름을 바꿔도 여전히 텍스트로 열린다면 파일 탐색기가 확장자명을 숨기고 있기 때문이다. [* windows10 기준 폴더 창 상단의 보기-옵션-보기-알려진 파일 형식의 파일 확장명 숨기기 박스 체크 해제하면 확장자가 보이는데 텍스트 파일 이름이 예를 들어 server.bat.txt 식으로 되어 사실상 확장자가 변경된 것이 아니라 이름만 변경된 경우이다. 뒤의 txt를 지우면 해결된다]
96105
97
7)폴더에 eula.txt를 만들어준다. 그리고 eula.txt를 메모장으로 열어 주고 eula=true로 작성한다.(이것을 저장하면 모장의 eula에 동의한다는 뜻이며, 자신이 서버를 운영하며 이 약관에 위반되는 행위를 할 경우 모장에게 제재를 받을 수 있다.)
98
8).bat또는 .cmd 파일을 열어 준다 그리고 초 정도 기다리면 world,ops.json 같은 폴더나 파일이 생성된다.
106
8)폴더에 eula.txt를 만들어준다. 그리고 eula.txt를 메모장으로 열어 주고 eula=true로 작성한다.(이것을 저장하면 모장의 eula에 동의한다는 뜻이며, 자신이 서버를 운영하며 이 약관에 위반되는 행위를 할 경우 모장에게 제재를 받을 수 있다.)
107
9).bat또는 .cmd 파일을 열어 준다. 그리고 잠시 기다리면 콘솔에 텍스트가 표시되며 world, server.properties 같은 폴더나 파일이 생성된다.
99108
* 폴더나 파일이 생성 되지 않는다변 .bat나.cmd 파일을 다시 메모장으로 열어 준 다음 버킷 파일 이름과 메모장에 쓴 버킷 파일 이름이 일치한지 확인하면 된다.
100109
101110
* 서버는 [[JVM]](자바 가상 머신)에서 돌아가기 때문에, [[https://blog.naver.com/pgy0905kr/220126129173|여기]]를 참고하여 [[가비지 컬렉션]] 관련 인수를 추가하여 서버를 최적화 하면 좋다.
......
112121
6. 이름은 편한대로 지정해주고 설명은 선택 옵션이다.
113122
114123
===== 포트 포워드 =====
115
'''자신 공유기나 모뎀을 사용하지 않는다면 패스.''' 장거리를 하고 싶다면 위에서 연 포트를 공유기에서도 열어주어야 한다. 모든 공유기 공통으로 공유기 페이지에 로그인해야되며 방법을 모르는 경우 공유기의 사용설명서를 읽어보면 된다. 공유기 제조사별로 방법이 천차 만별이니 문서에 모든 경우를 다 적기에는 어려움이 있다. 열심히 공유기의 포트 포워드나 포트 포워딩항목을 찾아보자 다만 Iptime같은 사재 공유기 말고 통신사의 공유기라면 내부 포트를 제대로 지정할 수 없는 경우가 있는데[* 한 LG공유기로 예를 들자면 내부 포트를 지정된 범위에서만 선택 가능하다. ex)스타크래프트 1234. 메일 P2P 1555등등등 이런 경우면 여기에 맞게 외부 포트도 설정해주고 윈도우 방화벽도 다시 설정해주어야 하며 버킷에서도 설정해주어야 한다.] 통신사에 연락하거나 DMZ, S-DMZ, Twin-IP를 사용하거나 내부 포트에 맞춰주자. 모뎀을 사용하거나 이중 공유기이면 모든 모뎀, 공유기를 똑같이 설정해주어야 한다.[* 모뎀일 경우 통신사에 연락해야하는 경우가 많다.] 공유기에서 컴퓨터로 할당되는 IP를 고정하는 것을 추천[* 이것 역시 방법이 천차만별], 유동 IP이기 때문에 컴퓨터로 할당되는 IP주소가 바뀐다면 다시 설정해야 되기 때문이다. [[https://www.yougetsignal.com/tools/open-ports/|포트 포워딩 테스트]]
124
'''자신 컴퓨터가 Wi-Fi 에 연결되지 않 LAN 선이 모뎀에 연결된 경우 패스.''' 장거리를 하고 싶다면 위에서 연 포트를 공유기에서도 열어주어야 한다. 모든 공유기 공통으로 공유기 페이지에 로그인해야되며 방법을 모르는 경우 공유기의 사용설명서를 읽어보면 된다. 공유기 제조사별로 방법이 천차 만별이니 문서에 모든 경우를 다 적기에는 어려움이 있다. 열심히 공유기의 포트 포워드나 포트 포워딩항목을 찾아보자 다만 Iptime같은 사재 공유기 말고 통신사의 공유기라면 내부 포트를 제대로 지정할 수 없는 경우가 있는데[* 한 LG공유기로 예를 들자면 내부 포트를 지정된 범위에서만 선택 가능하다. ex)스타크래프트 1234. 메일 P2P 1555등등등 이런 경우면 여기에 맞게 외부 포트도 설정해주고 윈도우 방화벽도 다시 설정해주어야 하며 버킷에서도 설정해주어야 한다.] 통신사에 연락하거나 DMZ, S-DMZ, Twin-IP를 사용하거나 내부 포트에 맞춰주자. 모뎀을 사용하거나 이중 공유기이면 모든 모뎀, 공유기를 똑같이 설정해주어야 한다.[* 모뎀일 경우 통신사에 연락해야하는 경우가 많다.] 공유기에서 컴퓨터로 할당되는 IP를 고정하는 것을 추천[* 이것 역시 방법이 천차만별], 유동 IP이기 때문에 컴퓨터로 할당되는 IP주소가 바뀐다면 다시 설정해야 되기 때문이다. [[https://www.yougetsignal.com/tools/open-ports/|포트 포워딩 테스트]]
116125
117126
====== 포트 포워드 문제 해결 ======
118127
간혹 공유기로 구축된 내부 네트워크와 서버 프로그램 자체에서 설정한 내부 네트워크 간 IP 설정이 달라[* 한번 다르게 설정되었다면 아래 방법으로 해결될때 까지 절대 문제가 해결되지 않는다. 환장할 노릇] 127.0.0.1과 같은 루프백 IP로는 접근이 되는데, 외부에서 서버 접근이 안 되는 경우가 있다. 방화벽 설정, 공유기 포트포워드 설정 등등을 다 했는데 안 되면 환장할 노릇.
......
178187
179188
|| * 이름: 서버 구현 프로그램 이름 [br] * 한글 이름: 제안하는 한글 표기명 [br] * 플러그인 API: 플러그인 동작의 기반이 되는 [[API]] [br] * 지원 모드: 모드와 플러그인의 지원 여부 [br] * 홈페이지: 공식 홈페이지 링크 [br] * 마지막 버전: 개발이 중단된 경우 기입 [br] * 추가 설명: 해당 구현물의 부가적인 설명||
180189
181
참고로 1.17부터 모든 서버 구동기들은 java 16 이상이 요구된다.
190
'''참고로 1.17부터 모든 서버 구동기들은 Java 16 이상이 요구된다.'''
182191
183192
=== 바닐라 서버 ===
184193
제작사인 Mojang에서 개발하는 공식 서버 프로그램이다. 근거리 네트워크 망의 유저끼리만 접속되는 [[마인크래프트/자바 에디션/서버#s-1.1|LAN 서버]]나, Mojang 사에서 호스트해주는 [[렐름|Realms]] 와 달리 독립적인 서버 프로그램을 통해 여는 방식이라 유저가 자신의 컴퓨터로 서버를 호스팅 할 수 있다. 아래에 나열할 서버 프로그램들도 마찬가지.
......
196205
플러그인 [[API]]의 일종이다. 아래 목록은 이 API를 제공하는 서버 구현 프로그램들이다.
197206
대한민국은 물론 해외를 포함하여 가장 높은 점유율을 보이며, 대다수의 플러그인들이 이 API를 기반으로 개발된다. [[모장]]이 버킷 개발팀을 인수했고, 현재는 [[DMCA]] 테이크 다운으로 인해 버킷의 공식 개발은 완전히 중단되어 최근에는 플러그인들이나 서버들이나 [[마인크래프트/자바 에디션/서버#s-3.3.3|Sponge]]나 다른 구현 프로그램으로 넘어가는 추세이다.
198207
199
일반적인 서버를 만들 때는 Tuinity Airplane을 추천하고, 커스터마이징을 원한다면 Purpur, AirplanePurpur를 추천한다.
208
일반적인 서버를 만들 때는 Tuinity 추천하고, 커스터마이징을 원한다면 Purpur를 추천한다.
200209
플러그인 개발 또는 소규모 서버는 Paper를 추천한다.
201210
202211
아래는 버킷들을 모아둔 사진이다.
......
242251
* 지원 모드 : 버킷 플러그인
243252
* 홈페이지 : [[https://github.com/Spottedleaf/Tuinity|깃허브]] [[https://ci.codemc.io/job/Spottedleaf/job/Tuinity/lastSuccessfulBuild/|공식 다운로드]][* 최신 버전 다운로드 링크이다.], [[https://github.com/Tuinity/Tuinity/actions?query=is%3Asuccess+branch%3Aver%2F1.17|1.17+ 버전 다운로드 (설치시 로그인 필요)]][* 앞으로 계속 CI 사이트를 이용할지 github 사이트를 이용할지는 불명.]
244253
* 추가 설명 : 페이퍼버킷을 기반으로 만들어진 버킷이다. 대규모 서버에 초점이 맞춰저있다. 페이퍼 버킷을 최적화 해서 페이퍼 버킷보다 성능은 더 좋다.[* 청크 생성 속도, 빛 관련 성능에서 체감이 크다.] 페이퍼 버킷에서 작동되는 플러그인 중 호환성 문제는 없다. 한국에서는 현재 인지도가 낮지만 해외에서는 인지도가 높은 편이다. 대부분의 Paper 포크도 Tuinity를 기반으로 제작할 정도다.[* Purpur, Airplane~~, Yatopia~~]
254
245255
==== NachoSpigot ====
246256
* 이름 : NachoSpigot
247257
* 한글 이름 : 나초 스피곳
......
257267
* 지원 버전 : '''1.16.5 ~ 1.17'''
258268
* 지원 모드 : 버킷 플러그인
259269
* 홈페이지 : [[https://github.com/TECHNOVE/Airplane|깃허브]] [[https://dl.airplane.gg/|공식 다운로드]][* 최신 버전 다운로드 링크이다.]
260
* 추가 설명 : Tuinity를 포크하여 한번더 최적화[* 주로 엔티티]를 한 버킷이다. Tuinity와 마찬가지로 인지도가 낮다. 일정 부분에서 Tuinity보다 더 빠르게 작동한다. Purpur를 포크한 AirplanePurpur도 있다. 이 버킷도 Paper 플러그인과 문제없이 호환된다.
270
* 추가 설명 : Tuinity를 포크하여 한번더 최적화[* 주로 엔티티]를 한 버킷이다. Tuinity와 마찬가지로 인지도가 낮다. 일정 부분에서 Tuinity보다 더 빠르게 작동한다. Purpur를 포크한 AirplanePurpur도 있다. 이 버킷도 Paper 플러그인과 문제없이 호환된다. 하지만 패치 속도가 다른 Paper 포크보다 더딘 편인다.
271
261272
==== Purpur ====
262273
* 이름 : Purpur
263274
* 플러그인 API : Bukkit
264275
* 지원 버전 : ''[[https://purpur.pl3x.net/api/v1/purpur/1.14.4/latest/download|1.14.4]]~[[https://purpur.pl3x.net/api/v1/purpur/1.16.5/latest/download|1.16.5]]'', '''1.17'''
265276
* 지원 모드 : 버킷 플러그인
266277
* 홈페이지 : [[https://github.com/pl3xgaming/Purpur|깃허브]] [[https://purpur.pl3x.net/downloads/#1.16.5|공식 다운로드]]
267
* 추가 설명 : Paper, Tuinity를 포크한 버킷이다. 주로 마인크래프트의 시스템을 purpur.yml 로 수정할 수 있도록 커스터마이징에 초점을 맞춘 버킷이다.
278
* 추가 설명 : Paper, Tuinity를 포크한 버킷이다. 주로 마인크래프트의 시스템을 purpur.yml 로 수정할 수 있도록 커스터마이징에 초점을 맞춘 버킷이며, 빠르고 쾌적한 서버는 이 버킷을 사용하는것을 추천한다. [[https://github.com/YouHaveTrouble/minecraft-optimization|Paper, Tuinity, Purpur 추천 최적화 가이드를 참고하자.]]
268279
269280
=== 버킷+모드 서버 ===
270281
##지원 중단된 버킷 중 특정 마인크래프트 버전이 지원 중인 버킷으로 대체가 가능하다면 지원 중단된 버킷을 아래 "개발 중단된 프로젝트" 로 옮긴후 지원 중인 버킷으로 대체해주시기 바라고, 지원 중인 버킷이 없어 대체가 불가능하다면 하나만 여기에 적어주시고 다른건 아래 "개발 중단된 프로젝트" 에다가 적어주세요.
......
589600
이 DMCA를 피하는 과정에서 여러 프로젝트가 주목받았다. 또 서버 소프트웨어의 주도권이 Spigot으로 넘어감에 따라 전체적인 업데이트 속도가 향상되었다.
590601
Beat 패치, BuildTools 빌드, 서버 코드 자체 제작, Forge 의존 등 여러 DMCA 회피 방법이 나왔으며 이는 이후에 유사한 상황이 생길 시 유용하게 쓰일 것이다.
591602
[[분류:마인크래프트/자바 에디션]][[분류:나무위키 마인크래프트 프로젝트]]
592
[include(틀:문서 가져옴/나무위키, title=마인크래프트/서버/자바 에디션, version=593)]
603
[include(틀:문서 가져옴/나무위키, title=마인크래프트/서버/자바 에디션, version=594)]