Fedora Core 3 を使っていて、次のようなメッセージにあったことはないですか?
SunのJDKを使わないでgcc-javaパッケージを使うとこのようなメッセージに出会うことがあります。自分は、Fedora Core 1 からFedora Core 3へバージョンアップしたマシンで、このメッセージをみました。
libgcj-javac-placeholder.sh
This script is a placeholder for the /usr/bin/javac
master link required by jpackage.org conventions. libgcj’s
rmiregistry, rmic and jar tools are now slave symlinks to these
masters, and are managed by the alternatives(8) system.
This change was necessary because the rmiregistry, rmic and jar tools
installed by previous versions of libgcj conflicted with symlinks
installed by jpackage.org JVM packages.
/usr/bin/javac: line 13: exec: gcj: not found
Fedora Core 3 では、インストール方法によって、Javaコマンド関係の挙動が微妙に違うようです(正確な表現ではありませんが)。ここの例の場合は、gcjコマンドがないためエラーになっています。このエラーを解決するには、gcc-javaをインストールします。
この作業をすると、次の1行は表示されなくなりますが、他のメッセージはあいかわらず表示されます。
そこで、スクリプトのなかをのぞいてみると、gcjを呼び出すだけのコマンドになっていることがわかりました。echoコマンドで強制的にメッセージを表示しているのでどうしようもありません。ただ、gcjが実行できる環境であれば、きちんとクラスファイルが生成されるということがわかるので、メッセージを気にしなければそのまま使えそうです。
#!/bin/sh
echo “libgcj-javac-placeholder.sh”
echo
echo “This script is a placeholder for the /usr/bin/javac”
echo “master link required by jpackage.org conventions. libgcj’s”
echo “rmiregistry, rmic and jar tools are now slave symlinks to these”
echo “masters, and are managed by the alternatives(8) system.”
echo
echo “This change was necessary because the rmiregistry, rmic and jar tools”
echo “installed by previous versions of libgcj conflicted with symlinks”
echo “installed by jpackage.org JVM packages.”
exec gcj -C “$@”
ところが、手元にあるもうひとつのFedora Core 3 ではこのようなメッセージは表示されません。そこでスクリプトの中をのぞいてみると、次のようになっていました。まったく違います。
#!/bin/sh
case $CLASSPATH in
/usr/share/java/ecj.jar) ;;
*) export CLASSPATH=$CLASSPATH${CLASSPATH:+:}/usr/share/java/ecj.jar
esac
exec /usr/bin/gij
org.eclipse.jdt.internal.compiler.batch.Main
-bootclasspath /usr/share/java/libgcj-3.4.2.jar
${1+”$@”}
念のためインストールされているrpmを確認してみたところ、違いがあったので、これが原因なのかもしれません。最初のメッセージがでる方は次のような感じです。
gcc-java-3.4.2-6.fc3
# rpm -qa | grep gcj
libgcj-devel-3.4.2-6.fc3
libgcj-3.4.2-6.fc3
もう一つのFedora Core 3 をクリアインストールした方では、次のような感じです。
java-1.4.2-gcj-compat-devel-1.4.2.0-11jpp
compat-gcc-java-8-3.3.4.2
gcc-java-3.4.2-6.fc3
java-1.4.2-gcj-compat-1.4.2.0-11jpp
db4-java-4.2.52-6
# rpm -qa | grep gcj
compat-libgcj-8-3.3.4.2
java-1.4.2-gcj-compat-devel-1.4.2.0-11jpp
libgcj-devel-3.4.2-6.fc3
java-1.4.2-gcj-compat-1.4.2.0-11jpp
libgcj-3.4.2-6.fc3
compat-libgcj-devel-8-3.3.4.2