리눅스 Java 설치 및 스프링부트 프로젝트 내장 톰캣 실행 방법
스프링부트 프로젝트는 내장 톰캣이 있으므로, 톰캣을 따로 설치하지 않고 java로 실행할 수 있습니다.
리눅스 Java 설치
리눅스 JDK 압축 파일 다운
https://www.oracle.com/java/technologies/downloads/archive
오라클 로그인 후, 위 경로 우측에서 프로젝트 JDK 버전을 선택합니다.
jdk-17.0.15_linux-x64_bin.tar.gz 같은 압축 파일로 받으면 설치가 간편합니다.
rpm, deb 같은 패키지 설치 방식을 이용하는 것도 가능합니다.
JDK 설치 (압축 파일 해제)
sudo mkdir -p /opt/java
tar -xvzf jdk-17.0.15_linux-x64_bin.tar.gz -C /opt/java
파일질라로 JDK 파일을 리눅스 서버 유저 Home에 올린 뒤, /opt/java 폴더를 생성하고 압축 해제합니다.
Java 실행파일 심볼릭 링크 생성
ln -s /opt/java/jdk-17.0.15/bin/java /usr/bin/java
/usr/bin/java 경로에 java 실행 파일로 연결되는 심볼릭 링크를 생성합니다.
JAVA 버전 확인
java -version
심볼릭 링크 생성 후, 설치된 Java 버전을 확인할 수 있습니다.
Java 환경변수 설정
sudo vi /etc/profile
profile 파일 하단에 아래와 같이 입력 후 저장합니다.
export JAVA_HOME=/opt/java/jdk-17.0.15
export PATH=$JAVA_HOME/bin:$PATH
Java 폴더 경로를 환경변수로 설정합니다.
환경변수 설정 적용
source /etc/profile
profile 파일 변경사항을 적용합니다.
JAVA_HOME 확인
echo $JAVA_HOME
등록된 Java 환경변수 값 (/opt/java/jdk-17.0.15) 을 확인할 수 있습니다.
스프링부트 jar 빌드 방법
IntelliJ 스프링부트 jar 빌드
https://0songha0.github.io/op/2023-03-07-1#intellij-gradle-war-%EB%B9%8C%EB%93%9C-%EB%B0%A9%EB%B2%95
IntelliJ에서 Gradle로 스프링부트 프로젝트 jar 빌드 후 파일질라로 서버에 올립니다.
내장 톰캣 서버 실행 방법
deploy.sh 스크립트 또는 systemd 서비스로 스프링부트 프로젝트 실행이 가능합니다.
두 방식 모두 젠킨스와 연동하여 자동 배포 파이프라인을 만들 수 있습니다.
deploy.sh 스크립트 파일 작성 방법
#!/bin/bash
set -e # 에러 발생 시 즉시 종료
# 기존 Java 프로세스 종료
PID=$(pgrep -f java || true)
if [ -n "$PID" ]; then
kill -9 $PID
# 종료 확인 (최대 10초)
for i in {1..10}; do
if ! ps -p $PID > /dev/null; then break; fi
sleep 1
done
# 종료 실패 시
if ps -p $PID > /dev/null; then
echo "기존 프로세스 종료 실패!"
exit 1
fi
fi
# 최신 JAR 파일 찾기
APP_NAME=$(ls -t ./*.jar | head -n 1)
if [ -z "$APP_NAME" ]; then
echo "실행할 JAR 파일을 찾을 수 없습니다."
exit 1
fi
# 신규 애플리케이션 프로세스 실행
nohup java -Dspring.profiles.active=프로파일명 -jar "$APP_NAME" > /dev/null 2>&1 &
NEW_PID=$!
# 실행 확인 (최대 5초)
sleep 3
if ps -p $NEW_PID > /dev/null; then
echo "애플리케이션 정상 실행 (PID: $NEW_PID)"
else
echo "애플리케이션 실행 실패 (로그 확인 필요)"
exit 1
fi
echo "배포 완료"
deploy.sh 스크립트로 실행하는 방식은 서버 재부팅 시 자동 시작이 불가합니다.
운영 환경에서 에러 발생 가능성이 높아 개발, 테스트용으로 적합합니다.
deploy.sh 스크립트 실행 권한 부여 명령어
chmod +x deploy.sh
스크립트 실행 권한을 부여하기 위해 최초 1회만 수행하면 됩니다.
deploy.sh 스크립트 실행 명령어
./deploy.sh
작성한 deploy.sh 스크립트를 실행하여 내장 톰캣을 실행할 수 있습니다.
systemd 서비스 파일 작성 방법
https://0songha0.github.io/op/2022-08-06-1
위 글을 참고하여 서비스 파일을 작성 및 등록하고, systemctl 명령어로 실행하면 됩니다.
서버 재부팅 시 자동 재시작이 가능해 deploy.sh 스크립트 실행 방식보다 운영 환경에 적합합니다.