cannot be resolved to a type
Linux (Fedora 12)上のJavaでantを実行したときのこと。
BASE64Encoder cannot be resolved to a type
BASE64Decoder cannot be resolved to a type
などのエラーが出てBUILD FAILEDになってしまう。どうしたものか…。
調べた結果 sun.misc.BASE64EncoderはSunのJDKに含まれるもののFedoraはGNUのJavaを使っているためにSunのパッケージを見つけられないのが原因だと発覚。なのでSun JDK 1.6のRPMをインストール。
参考: Linux環境におけるJavaインストール手順:CodeZine(コードジン)
再びantを実行してみる…が、ダメッ…!
$ which java としてみたところ、/usr/bin/java が使用される。javacなども同様。これらはシンボリックリンクなので
# cd /usr/bin/ # rm java* # ln -s /usr/java/default/bin/java java # ln -s /usr/java/default/bin/javadoc javadoc # ln -s /usr/java/default/bin/javac javac # ln -s /usr/java/default/bin/javah javah # ln -s /usr/java/default/bin/javap javap # ln -s /usr/java/default/bin/javaws javaws
/etc/profileに以下を追記。
export JAVA_HOME=/usr/java/default
再起動し(sourceで読み込ませれば十分だと思うけど)、再びantを実行。BUILD SUCCESSFULと出たので一安心。
Javaはプラットフォーム非依存なはずなのに…と思いながら今日はそろそろ徒歩で帰ります。約1時間かけて。