소개

실행가능한 jar 파일을 만들기 위해 maven 명령어 mvn package를 사용하였는데 아래와 같은 에러가 발생하였습니다.

[ERROR] Error executing Maven.
[ERROR] java.lang.IllegalStateException: Unable to load cache item
[ERROR] Caused by: Unable to load cache item
[ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper

 

검색을 통해 알게된 내용은 우분투 패키지 관리 툴인 apt 에서 제공하는 maven 버전이 낮아 시스템에 설치된 자바 16버전과 호환이 안되어 발생한 에러였습니다.

위와 같은 에러 발생을 예방하기 위해 Ubuntu Maven 최신 버전을 수동으로 설치하게 되어 해당 내용을 정리하는 글입니다.

 

설치 프로세스

  1. 명령어를 통한 apache maven 최신 버전 압축 파일 다운로드
  2. /opt 폴더에 압축풀기
  3. 쉬운 maven 버전 관리를 위해 symbolic link 생성
  4. maven 환경 설정
  5. 버전 확인

참고 사이트

https://linuxize.com/post/how-to-install-apache-maven-on-ubuntu-18-04/

https://stackoverflow.com/questions/67334703/unable-to-compile-java-project-with-maven

 

 

설치 방법

1. 명령어를 통해 Apache Maven 최신 버전을 설치합니다(3.8.1 버전으로 진행하였습니다).

wget https://mirror.navercorp.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz -P /tmp

 

2. /opt 폴더에 다운로드 받은 파일 압축을 풉니다

sudo tar xf /tmp/apache-maven-3.8.1-bin.tar.gz -C /opt

 

3. 쉬운 Maven 버전 관리를 위해 /opt/maven 에 설치된 maven의 심볼릭 링크를 생성합니다.

sudo ln -s /opt/apache-maven-3.8.1 /opt/maven

 

4. maven 경로 설정을 진행합니다. 아래 명령어를 통해 maven.sh 파일을 열고 아래 내용을 추가합니다.

sudo vi /etc/profile.d/maven.sh
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

 

5. maven.sh 파일에 실행 권한을 부여하고 실행합니다.

sudo chmod +x /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh

 

6. 설치 확인을 위해 Maven 버전 확인을 합니다.

mvn -version

'우분투(Ubuntu)' 카테고리의 다른 글

Ubuntu 20.04 자바 JDK 설치 및 버전 관리  (0) 2021.05.24
Ubuntu 20.04 한글입력기 설치  (1) 2021.05.17

소개

우분투에 자바를 설치하는 몇가지 방법이 있습니다.

이 글에선 설치가 비교적 간단하고 자바 버전관리도 쉽다고 판단되어 package 관리자를 통한 설치 방법JDK 버전을 쉽게 변경하는 방법을 공유합니다.

 

간단한 설치 프로세스는 아래와 같습니다.

  1. apt 패키지 정보 업데이트
  2. 자바 JDK 설치
  3. bashrc에 JAVA_HOME 추가
  4. bashrc 실행

간단한 자바 버전 변경 프로세스는 아래와 같습니다.

  1. JAVA 버전 확인
  2. update-alternatives 명령어를 통해 자바 버전 변경
  3. JAVA 버전 확인

 

설치 방법

1. apt 패키지 인덱스 정보를 아래 명령어로 업데이트하여 자바 리스트를 갱신합니다.

sudo apt update

 

2. 원하는 자바 버전을 설치합니다. 이 글에선 8버전과 16버전을 선택하였습니다.

sudo apt install openjdk-8-jdk
sudo apt install openjdk-16-jdk

 

3. bashrc에 JAVA_HOME을 추가합니다.

  • export 명령어에 대한 설명은 이 글 맨 아래에 추가하였습니다.
  • 많은 application(Apache Hadoop 등)은 자바 위치를 찾기위해 JAVA_HOME 변수를 참조합니다. 이에 다른 어플리케이션에서 쉽게 사용할 수 있도록, JAVA_HOME을 설정합니다.
sudo vi ~/.bashrc
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

4. bashrc 변경 사항을 적용하기 위해 아래 명령어를 통해 bashrc를 1회 실행합니다

source ~/.bashrc

 

버전 변경 방법

1. Ubuntu에서 application들의 다양한 버전 관리를 담당하는 update-alternatives 명령어를 이용하여 설치된 자바 버전을 확인합니다.

# 현재 자바 버전 확인
java -version

# 설치된 자바 버전 리스트 확인
update-alternatives --list java

 

2. 버전을 변경하고자 한다면 아래 명령어 2가지를 실행한 후 java와 javac의 버전을 변경해 줍니다.

sudo update-alternatives --config java
sudo update-alternatives --config javac

 

3. 현재 자바 버전이 변경되었는지 확인합니다.

java -version

 

 

update-alternatives에 대한 추가 설명

  • /usr/bin/java 는 우분투에서 자바 명령어를 실행하기 위해 자바 설치시 자동으로 추가된 심볼릭 링크이며, /etc/alternatives/java 를 가르키고 있습니다.
  • /etc/alternatives/javaupdate-alternatives 에서 관리 중이며, 실제로 설치된 자바 디렉토리를 가르킵니다. sudo update-alternatives --config java 명령어를 통해 자바 디렉토리를 변경 가능합니다.
  • 링크를 정리하자면 /usr/bin/java/etc/alternatives/javaactual java directory 의 형태를 가지고 있습니다. 아래 readlink 명령어를 통해 보이는 link가 확인 가능합니다.

 

 

bashrc에 export 명령어가 하는 일

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

1. readlink -f /usr/bin/java 는 해당 심볼릭 링크가 가르키는 최종 directory나 file의 경로를 가지고 옵니다(위 그림 참조)

2. sed "s:bin/java::" 는 문자열의 마지막 bin/java 를 제거해줍니다.

3. export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") 를 통해 JAVA_HOME이 update-alternatives가 관리하는 directory로 동적으로 변경하게 해줍니다.

 

우분투에서 기본적으로 지원하는 한글 입력기는 Telegram 등의 특정 앱에서 한글 입력이 안되는 현상이있습니다. 이를 해결하기 위한 방법으로 fcitx 입력기를 설치하는 방법을 공유합니다.

설치 PROCESS

 

  1. Terminal을 연 후 아래 명령어를 실행 후 fcitx-hangul 입력기 설치

    sudo apt install fcitx-hangul
    

     

     

  2. Ubuntu 화면 왼쪽 아래 부분에 있는 Show Applications 실행 후 Language Support 실행

  3. language pack 설치 안내가 나오면 설치 완료 후 Keyboard input method system을 fcitx로 변경한 후 컴퓨터 재부팅

  1. 재시작 후 화면 우측 상단에 생긴 키보드 모양을 클릭한 후 Configure Current Input Method 클릭

  1. [+] 버튼을 누른 후 Only Show Current Language를 체크해지 한 후 Hangul을 검색한 후 추가

  1. 아래 그림의 톱니바퀴를 눌러 Hangul 키보드 설정에 들어가 Hanja Mode가 체크되있다면 해지한 후 OK 클릭

    • 한자 입력모드가 자동으로 켜지는 현상을 방지하기 위한 절차입니다. 체크가 이미 해지되어 있는 경우도 있습니다.

  1. gnome-tweak-tool 설치 및 실행

    • 한영 변환이 잘되는 경우는 7번부터 진행하지 않아도 됩니다. 7번 process 부터는 키보드가 한/영 변환키가 없고 Alt키가 있는 경우 Alt키를 한/영 키로 매핑하는 작업입니다.

      sudo apt install gnome-tweak-tool
      gnome-tweaks
      

  1. Keyboard & Mouse Tab에서 Additional Layout Options을 선택한 후 [왼쪽 Alt] 키를 [Hangul]로 교체

    • Make right Alt a Hangul key 선택
    • Make right Ctrl a Hanja key 선택

  1. Global Config Tab에 들어가 Trigger Input Method를 선택후 Alt를 눌러 아래 그림과 같이 변경해주기

+ Recent posts