読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

今日のコンパイルエラー

Java
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なんて名前からしてたいしたことなさそうなクラスなので(推測)そういうのはさくっと自作しようよ。