H2データベースを起動しようとしたら、Can’t load library openjdk libawt_xawt.soと言われた
久しぶりにH2データベースを起動しようとしたら、全然起動しない。
で、H2データベースをインストールしたディレクトリから直接起動してみた。
$ cd ~/bin/h2/bin
$ ./h2.sh
すると、以下のようなエラーが出た。
Exception in thread "main" java.lang.UnsatisfiedLinkError:
Can't load library:
/usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
グーグルさんに相談してみると、以下のページを紹介してくれた。
Exception java.lang.UnsatisfiedLinkError when trying to open allure-reports in webdriver.io project
で、Answers には、以下の方法が紹介されていた。
$ sudo apt install openjdk-11-jdk
別の方法
$ sudo apt install openjdk-[version]-jdk --fix-missing
また別の方法
$ ldd /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
今回は java11 で検索したが、java17 で検索してみると、以下のページがヒットした。
The cause of this error may be that only “headless” part of JDK is installed, which does not include GUI libraries. Try to do sudo apt install openjdk-17-jdk, this should add necessary parts if they are missing.
このエラーの原因は、JDK の「ヘッドレス」部分のみがインストールされており、GUI ライブラリが含まれていないことが考えられます。 sudo apt install openjdk-17-jdk を実行してみてください。必要な部分が不足している場合は追加されるはずです。
実行した方法
javaのバージョンを11から17に変更した
$ sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 自動モード
* 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手動モード
2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 手動モード
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 手動モード
現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:
2を選択した。(0を選択したら、どうなるんだろう?)
$ sudo upate-alternatives --config javac
alternative javac (/usr/bin/javac を提供) には 2 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
0 /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 1711 自動モード
* 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1111 手動モード
2 /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 1711 手動モード
現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:
JAVA_HOME を変更した
$ vi ~/.bashrc
# export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
# export CATALINA_HOME="$HOME/bin/apache-tomcat-9.0.76"
export CATALINA_HOME="$HOME/bin/apache-tomcat-10.1.10"
上では、ついでに CATALINA_HOME も変更した。
ログインし直して、openjdkの再インストール
stack-overflow のページに書かれていたとおりにした。
$ sudo apt install openjdk-17-jdk
ついでに以下もやった。
$ sudo apt install openjdk-11-jdk
これで、H2データベースが起動できた。
カテゴリー: Java, memo
タグ: Can't load liblary, libawt_xawt.so, 複数Java
カウント: 303