[Ubuntu, Spring Boot] 우분투에서 스프링 부트 jar파일로 실행시키기.

ncloud에 ubuntu 서버 생성 후 spring boot 프로젝트를 올리는 과정을 포스팅해보겠습니다.

서버에 스프링 부트를 올리는 방법은 크게 3가지가 있습니다.

  1. 스프링 부트 프로젝트 파일들을 모두 올리는 방법
  2. war 배포
  3. runnable jar 배포
1번 방식은 *.java 형태를 서버에 올리는 방법입니다.
2번 방식은 war를 실행시키면 war가 풀리면서 해당 프로젝트가 저절로 만들어집니다. 그 프로젝트 폴더로 서버가 실행이 됩니다.
3번 방식은 jar를 실행시키면 war와 다르게 프로젝트 폴더가 따로 생성은 되지 않습니다.

이번에는 3번 방식 톰캣 설치 없이 우분투에 jar 배포하는 방법입니다.

실행 조건
우분투 버전 16.04 desktop 버전
IDE는 STS 사용.
우분투 초기화 상태

스프링 부트 설정 
1.  테스트 프로젝트 생성
2. MainController.java 생성

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class MainController {
    @GetMapping
    public String test() {
        return "TEST";
    }
}

3.localhost:8080/test 접속 후 TEST 반환하는지 확인

4. 상단에 Run -> Run Configurations 클릭



5.Java Application 선택 후 우클릭 -> New 클릭


6. 해당 프로젝트 설정 후 오른쪽 아래 Run 클릭

7. Package Explorer에서 프로젝트 클릭 후 우클릭

8. Export 클릭

9. Runnable Jar file 속성 찾은 후


10.  생성 완료 후 Export destination 폴더 경로로 간다.

11. 그러면 jar파일과 *_lib 폴더가 생긴다.

12. 일단 기억해두고 우분투 설정을 하러간다

우분투 설정

1. apt-get update

2. sudo apt install default-jre


실행
1. STS에서 export한 *.jar, *_lib 폴더를 우분투에 옮기기 - 여러 방법이 있지만 개인적으로는 ssh 파일 전송사용하였음.
2. java -jar *.jar   *는 개인의 파일 이름임.
3. 그 후 curl "localhost:8080/test" 하면 html이 반환됨을 확인할 수 있음.

그러나 문제는 jar를 실행해서 웹 서버 구동을 하였는데 다른 작업을 못하는 것이다.
다른 작업을 하려고 하면 서버가 꺼져버린다.
그래서 스프링 부트 작업을 백그라운드로 실행시키려고 한다면

java -jar *.jar &   &을 붙여주면 백그라운드로 실행이 됨을 확인할 수 있다.
또 그럼 드는 생각은 로그를 볼수는 없을까? 이다.
nohup java -jar *.jar & 실행시키면 nohup에 로그가 남는다
로그를 보고싶다면
cat nohup.out
다른 파일에 로그를 남기고 싶다면 링크를 참조하면 된다.
https://zetawiki.com/wiki/리눅스_nohup_사용법

war 배포하려다가.. 이렇게 우분투 서버에 톰캣 서버 없이 스프링 부트 실행시키는 방법을 포스팅해보았습니다.

참고 사이트
https://www.leafcats.com/225 war 배포 및 실행
https://www.mkyong.com/java/how-do-run-a-java-program-in-backgroud-unix-linux/ 실행중인 프로세스 유지 후 ssh 로그아웃하기
https://zetawiki.com/wiki/스프링_스타터_프로젝트_HelloWorld_jar_파일_내보내기



댓글

이 블로그의 인기 게시물

[생활] 짝눈(부동시)로 신체검사 4급(공익) 받은 방법.

[INTELLIJ] 인텔리제이 폴더 안 보이고 파일만 보이는 버그 해결 방법

[스프링부트] @Mapper import 실패시(빨간줄) 해결 방법