Ubuntu 24.04에서 SQuirreL SQL 설치(squirrel-sql-4.8.0-standard.jar) 시 아래와 같은 오류 발생
[ 오류 메시지 (Error message) ]
gangserver@S550-PFB5L:~$ java -jar squirrel-sql-4.8.0-standard.jar
Command line arguments:
심각: java.lang.ArrayIndexOutOfBoundsException: Index 70131 out of bounds for length 22674
OpenJDK가 설치된 경우 SquirreL SQL 설치 시 동일한 오류가 발생한다.
(openjdk-21-jdk, openjdk-17-jdk, openjdk-11-jdk 중 하나 설치 후 테스트 시 동일한 오류 발생)
[ 해결 방안 (Solution) ]
1. Oracle JDK 설치 후 기본 JDK Oracle JDK로 설정 후 SQuirreL SQL 설치
(After installing Oracle JDK, set Oracle JDK as the default JDK and then install SQuirreL SQL)
(SQuirreL SQL 설치 후 다시 OpenJDK를 기본 JDK로 설정)
또는(or)
2. 설치된 OpenJDK 삭제 후 Oracle JDK 설치
(After deleting openjdk, install Oracle JDK.)
[ 1번 방안 ]
1.1 Oracle JDK 다운로드 사이트에서 Linux용 JDK 다운로드(https://www.oracle.com/java/technologies/downloads/)
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
www.oracle.com
리눅스용 x64 Compressed Archive 버전 다운로드 후 설치
(설명은 JDK21로 설명하지만 다른 버전 설치해도 상관없습니다.)
- 다운로드 버전 : JDK 21
- 다운로드 종류 : Linux / x64 Compressed Archive
- 다운로드파일 : jdk-21_linux-x64_bin.tar.gz
- 다운로드 URL : https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
- 파일 위치 : /home/user
1.2 압축 해제
gangserver@S550-PFB5L:~$ tar -xvzf jdk-21_linux-x64_bin.tar.gz
압축 해제된 JDK 폴더 : /home/gangserver/jdk-21.0.6
1.3 기본 JDK를 Oracle JDK로 설정 - 파일 맨 아랫 부분에 아래와 같이 추가 (JDK 설치 폴더 다른 경우 맞게 수정)
gangserver@S550-PFB5L:~$ vi .profile
------------------------------------------------------------------------
...
JAVA_HOME=~/jdk-21.0.6
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
------------------------------------------------------------------------
1.4 저장 후 .profile 재로딩
gangserver@S550-PFB5L:~$ . .profile
1.5 재로딩 후 java 버전 확인
gangserver@S550-PFB5L:~$ java -version
java version "21.0.6" 2025-01-21 LTS
Java(TM) SE Runtime Environment (build 21.0.6+8-LTS-188)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.6+8-LTS-188, mixed mode, sharing)
위와 같이 Oracle JDK로 기본 JDK 설정 정상적으로 된경우
1.6 SQuirreL SQL 설치 진행
gangserver@S550-PFB5L:~$ java -jar squirrel-sql-4.8.0-standard.jar
Command line arguments:
Cannot find named resource: 'packsLang.xml' AND 'packsLang.xml_eng'
정상 설치 화면 뜸.
[ 2번 방안 ]
2.1 OpenJDK 설치 버전 확인 (테스트하기 위해 21, 17, 11 버전 설치해서 21, 17, 11 버전 설치된 것으로 확인됨)
gangserver@S550-PFB5L:~$ apt --installed list *jdk*
나열 중... 완료
openjdk-11-jre-headless/noble-updates,noble-security,now 11.0.26+4-1ubuntu1~24.04 amd64 [설치됨,자동]
openjdk-11-jre/noble-updates,noble-security,now 11.0.26+4-1ubuntu1~24.04 amd64 [설치됨,자동]
openjdk-17-jre-headless/noble-updates,noble-security,now 17.0.14+7-1~24.04 amd64 [설치됨,자동]
openjdk-17-jre/noble-updates,noble-security,now 17.0.14+7-1~24.04 amd64 [설치됨,자동]
openjdk-21-jdk-headless/noble-updates,noble-security,now 21.0.6+7-1~24.04.1 amd64 [설치됨,자동]
openjdk-21-jdk/noble-updates,noble-security,now 21.0.6+7-1~24.04.1 amd64 [설치됨]
openjdk-21-jre-headless/noble-updates,noble-security,now 21.0.6+7-1~24.04.1 amd64 [설치됨,자동]
openjdk-21-jre/noble-updates,noble-security,now 21.0.6+7-1~24.04.1 amd64 [설치됨,자동]
2.2 설치된 OpenJDK 삭제
gangserver@S550-PFB5L:~$ sudo apt remove openjdk*
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
glob 'openjdk-11-jdk'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-19-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-jre-zero'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-jdk-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-jdk-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-demo'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-dbg'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-doc'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-jdk'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-jdk-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-dbg'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-doc'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-jdk'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-demo'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-6-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-dbg'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-doc'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-testsupport'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-jdk'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-9-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-demo'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-source'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-source'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-demo'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-6-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-source'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-jre'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-jre-zero'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-8-jdk-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-source'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-20-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-18-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-jre-zero'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-13-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-17-jre-headless'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-dbg'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-11-doc'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-21-jre-zero'에 대해 'openjdk*'를 선택합니다.
glob 'openjdk-12-jre-headless'에 대해 'openjdk*'를 선택합니다.
패키지 'openjdk-18-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-19-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-20-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-6-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-6-jre'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-12-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-13-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-9-jre'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-jre'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-jre-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-dbg'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-jdk'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-jdk-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-demo'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-source'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-jdk-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-21-dbg'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-21-demo'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-21-source'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-21-doc'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-jdk-headless'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-dbg'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-jdk'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-demo'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-doc'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-source'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-11-jre-zero'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-doc'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-17-jre-zero'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-21-jre-zero'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-21-testsupport'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-dbg'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-jre'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-jdk'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-demo'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-doc'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-source'는 설치되어 있지 않아, 지우지 않았습니다.
패키지 'openjdk-8-jre-zero'는 설치되어 있지 않아, 지우지 않았습니다.
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java
libatk-wrapper-java-jni libice-dev libpthread-stubs0-dev libsm-dev
libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxt-dev x11proto-dev
xorg-sgml-doctools xtrans-dev
'sudo apt autoremove'를 이용하여 제거하십시오.
다음 패키지를 지울 것입니다:
openjdk-11-jre openjdk-11-jre-headless openjdk-17-jre
openjdk-17-jre-headless openjdk-21-jdk openjdk-21-jdk-headless
openjdk-21-jre openjdk-21-jre-headless
0개 업그레이드, 0개 새로 설치, 8개 제거 및 0개 업그레이드 안 함.
이 작업 후 671 M바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] y
(데이터베이스 읽는중 ...현재 214990개의 파일과 디렉터리가 설치되어 있습니다.)
openjdk-11-jre:amd64 (11.0.26+4-1ubuntu1~24.04)를 제거합니다...
openjdk-11-jre-headless:amd64 (11.0.26+4-1ubuntu1~24.04)를 제거합니다...
openjdk-17-jre:amd64 (17.0.14+7-1~24.04)를 제거합니다...
openjdk-17-jre-headless:amd64 (17.0.14+7-1~24.04)를 제거합니다...
openjdk-21-jdk:amd64 (21.0.6+7-1~24.04.1)를 제거합니다...
openjdk-21-jdk-headless:amd64 (21.0.6+7-1~24.04.1)를 제거합니다...
openjdk-21-jre:amd64 (21.0.6+7-1~24.04.1)를 제거합니다...
openjdk-21-jre-headless:amd64 (21.0.6+7-1~24.04.1)를 제거합니다...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu3) ...
Processing triggers for desktop-file-utils (0.27-2build1) ...
2.3 Oracle JDK 다운로드 사이트에서 Linux용 JDK 다운로드(https://www.oracle.com/java/technologies/downloads/)
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
www.oracle.com
리눅스용 x64 Compressed Archive 버전 다운로드 후 설치
(* Oracle JDK 설치는 위 1번 방안 내용 참고하시기 바랍니다.)
2.4 설치 후 확인하여 Oracle JDK로 확인 되면 SQuirrel SQL 설치 시 정상 설치됩니다.
gangserver@S550-PFB5L:~$ java -version
java version "21.0.6" 2025-01-21 LTS
Java(TM) SE Runtime Environment (build 21.0.6+8-LTS-188)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.6+8-LTS-188, mixed mode, sharing)
gangserver@S550-PFB5L:~$ java -jar squirrel-sql-4.8.0-standard.jar
Command line arguments:
Cannot find named resource: 'packsLang.xml' AND 'packsLang.xml_eng'
정상 설치 화면 뜸.