今日のコンパイルエラー
com.sun.xml.internal.ws.util.ByteArrayDataSource
を使っているクラスがあって、それをコンパイルしようとするとエラーになる。
$ javac ./Test.java ./Test.java:2: パッケージ com.sun.xml.internal.ws.util は存在しません。 import com.sun.xml.internal.ws.util.ByteArrayDataSource; ^ .\comsun\Test.java:6: シンボルを見つけられません。 シンボル: クラス ByteArrayDataSource 場所 : comsun.Test の クラス new ByteArrayDataSource( new byte[0], "test" ); ^ エラー 2 個
上記クラスはrt.jarに含まれていて、eclipse上では問題なくコンパイルできるがjavacだとエラーになる。うぬー。よくわからないが、rt.jarの中でも使えないクラスがあるようだ。
とりあえずの対策
rt.jarを明示的にクラスパスに追加すればとりあえずコンパイルは可能。
$ javac -cp rt.jar ./Test.java
というか、本質的には、利用が推奨されていないクラスを使っているのが問題だなー。ByteArrayDataSourceなんて名前からしてたいしたことなさそうなクラスなので(推測)そういうのはさくっと自作しようよ。