본문 바로가기

⭐ SpringBoot/build (Gradle, Dependency 설정 등)

리눅스 java 설치 및 Gradle로 빌드하기

1. 자바설치

- 자바 버전을 확인한다.

javac -version
javac --version
Command 'javac' not found, but can be installed with:
sudo apt install default-jdk              # version 2:1.11-72, or
sudo apt install openjdk-11-jdk-headless  # version 11.0.14+9-0ubuntu2~20.04
sudo apt install ecj                      # version 3.16.0-1
sudo apt install openjdk-16-jdk-headless  # version 16.0.1+9-1~20.04
sudo apt install openjdk-17-jdk-headless  # version 17.0.2+8-1~20.04
sudo apt install openjdk-8-jdk-headless   # version 8u312-b07-0ubuntu1~20.04
sudo apt install openjdk-13-jdk-headless  # version 13.0.7+5-0ubuntu1~20.04

javac를 찾을수 없다고 나오면, 아래의 명령어를 통해 자바를 설치한다.

여기서는 sudo apt install openjdk-11-jdk-headless를 통해 설치를 진행한다.

만약에 아래와 같은 오류가 나오면 sudo apt update를 통해 os를 업데이트 해줘야 한다.

Ign:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.11+9-0ubuntu2~20.04
Ign:2 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.11+9-0ubuntu2~20.04
Err:1 http://security.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.11+9-0ubuntu2~20.04
  404  Not Found [IP: 52.78.32.75 80]
Err:2 http://security.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.11+9-0ubuntu2~20.04
  404  Not Found [IP: 52.78.32.75 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/o/openjdk-lts/openjdk-11-jre-headless_11.0.11+9-0ubuntu2~20.04_amd64.deb  404  Not Found [IP: 52.78.32.75 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/o/openjdk-lts/openjdk-11-jdk-headless_11.0.11+9-0ubuntu2~20.04_amd64.deb  404  Not Found [IP: 52.78.32.75 80]

2. 설치확인

javac -version

javac --version
javac 11.0.14

3. $JAVA_HOME 설정되어있는지 확인

echo $JAVA_HOME

아무것도 나오지 않으면 설정이 되어 있지 않다고 보면 된다.

4. javac 위치 확인

which javac

which javac
/usr/bin/javac

아래 명령어를 입력하여 적용한다.
readlink -f /usr/bin/javac

readlink -f /usr/bin/javac
/usr/lib/jvm/java-11-openjdk-amd64/bin/javac

readlink 관관련내용 확인 아래 "더보기" 클릭

더보기

readlink: 심볼릭 링크의 원본 파일 확인

readlink -f: 심볼릭 링크를 따라 최종의 파일을 절대경로로 반환

-rw-rw-r--  1 ubuntuvm ubuntuvm    5 Jan 24 22:54 a.txt
lrwxrwxrwx  1 ubuntuvm ubuntuvm    5 Jan 24 22:54 b.txt -> a.txt
lrwxrwxrwx  1 ubuntuvm ubuntuvm    5 Jan 24 22:55 c.txt -> b.txt

명령어: readlink c.txt 결과 b.txt 
명령어: readlink b.txt 결과 a.txt
명령어: readlink -f c.txt 결과 /home/~~~/a.txt

4. $JAVA_HOME 설정

/etc/profile 하단에 내용추가

sudo vi /etc/profile

ex) export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64

ex) export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.265.b01-1.amzn2.0.1.x86_64

해당 주소는 개개인의 서버 환경과 버전이 다르므로 각자의 환경에 맞게 설정 해야한다.

예를들어 현재 java파일의 위치를 확인하면 위에서 readlink -f /usr/bin/javac로 설정했던 /usr/lib/jvm 안에 존재 한다.

해당 파일에서 파일명과 경로를 복사하여 $JAVA_HOME에 설정해주면 된다.

아래의 경로를 /etc/profile 하단 추가 후 재 접속하면 빌드가 된다.

/usr/lib/jvm/java-11-openjdk-amd64

5. SSH로 재접속 후 echo 명령어로 확인

ubuntu@ip-10-100-0-32:~$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.265.b01-1.amzn2.0.1.x86_64

6. java 리소스 빌드 with docker image

해당 리소스 파일 경로에서 아래 명령어로 빌드 수행

./gradlew build

빌드가 완료 후 jar 파일 경로를 dockerfile과 일치 시킴
추가 : gradlew로 빌드를 한다는것은 해당 소스를 실행하기위해 jar로 묶어서 하나의 파일로 만들어 준다고 보면 된다. 그리고 docker는 결국 이 jar 파일을 실행한다고 보면 된다.

추가: 만약 ./gradlew build로 빌드 수행시 아래와 같이 오류가 발생 한다면 chmod를 활용하여 실행 권한을 조정해야 한다.

-bash: ./gradlew: Permission denied

권한 조정

chmod 755 gradlew

권한 조정 후 빌드 수행하면 정상적으로 진행 된다.

 

끝.