HOWTO · Java

StdDraw Java インポート

このチュートリアルでは、Java で stddraw をインポートする方法を示します。

このページの内容

JavaプロジェクトでStdDrawを使うには、Princetonのstdlib.jarをダウンロードし、プロジェクトのビルドパスに追加してから、Javaソースでクラスをインポートします。JARをEclipseに追加することと、import文を書くことは別の手順です。前者でライブラリがコンパイラーと実行環境から利用できるようになり、後者でソースからクラスの短い名前を使えるようになります。

StdDrawとは何か、何が必要か

StdDrawは、初学者向けプログラミングで使われるPrincetonのStdLibに含まれる描画APIです。図形やテキストの描画、色の設定に使うメソッドを備えています。StdLibは外部依存ライブラリであり、JavaのJDKやJREには含まれていません。stdlib.jarと、Eclipse上のJavaプロジェクトが必要です。このガイドでは、下のインポート文に示すedu.princeton.cs.introcsパッケージを使います。

StdLibのJARをダウンロードする

PrincetonのStdLibページを開き、ライブラリ一覧からstdlib.jarを探します。JARファイルをダウンロードしてください。ソースと一緒に依存ライブラリを管理したい場合は、プロジェクト内にlibフォルダーを作成し、ダウンロードしたファイルをそこにコピーします。JARをプロジェクト内に置くと場所が分かりやすくなりますが、コピーしただけではEclipseのビルドパスには追加されません。

PrincetonのStdLibページにはライブラリの一覧があり、標準ライブラリ一式としてのstdlib.jarが説明されています。

Princetonのページにあるライブラリ一覧とstdlib.jarのダウンロード案内。

Eclipseプロジェクトにstdlib.jarを追加する

Package Explorerでプロジェクトを右クリックし、Propertiesを選択します。Java Build Pathを開いてLibrariesを選び、ファイルがプロジェクト内にある場合はAdd JARs…、別の場所にある場合はAdd External JARs…を選択します。プロジェクトのlibフォルダーに置いた場合は、プロジェクトを展開してlib/stdlib.jarを選択します。Apply and Closeを選択してください。JARがプロジェクトのクラスパス項目に表示されます。EclipseにOrder and Exportタブがある場合、このタブは依存するプロジェクトに何を渡すかを設定するもので、JARを追加する場所ではありません。

EclipseのプロジェクトプロパティにあるJava Build PathのLibrariesタブで、ClasspathにJARが表示されています。

Librariesビューには、プロジェクトのクラスパスに追加されたJARが表示されます。

JavaでStdDrawを使う

JARを追加したら、そのクラスを使うソースファイルでインポートします。たとえば、描画プログラムはimport edu.princeton.cs.introcs.StdDraw;で始め、その後にStdDraw.setPenColor(StdDraw.BLUE);、続いてStdDraw.filledCircle(0.5, 0.5, 0.1);を呼び出せます。これらの呼び出しはペンの色を青に設定し、StdDrawの単位正方形座標系で、中心が(0.5, 0.5)、半径が0.1の塗りつぶされた円を描きます。インポート文がJARを読み込むわけではありません。JARを利用可能にするのはプロジェクトのビルドパスです。同様に、JARを追加してもソースでのインポートは必要です。

次の短いJavaプログラムを使うと、実行中のプログラムのクラスパスからクラスを見つけられるか確認できます。グラフィカルなウィンドウを開かずに、検索結果を表示します。

このセクションのコードと表示されるラベルや出力は英語のままです。

public class CheckStdDraw {
    public static void main(String[] args) {
        try {
            Class.forName("edu.princeton.cs.introcs.StdDraw");
            System.out.println("StdDraw is available on the classpath.");
        } catch (ClassNotFoundException e) {
            System.out.println("StdDraw is missing from the classpath.");
        }
    }
}

よくあるセットアップエラーを解決する

Eclipseがedu.princeton.cs.introcsが存在しない、またはStdDrawを解決できないと報告した場合は、ソースを含む同じプロジェクトのProject Properties → Java Build Path → LibrariesにJARが表示されているか確認します。表示されていなければ、もう一度追加して変更を適用してください。Eclipseがインポートを受け付けても、プログラムの起動時にクラスが見つからないと報告される場合は、プロジェクトのビルドパスに加えて、起動構成のクラスパスも確認します。コンパイル時と起動時の両方で依存ライブラリが必要です。

パッケージ名とクラス名のスペルや大文字・小文字を確認し、追加したファイルがダウンロードしたJARであることも確かめてください。別のライブラリを含むWebページやアーカイブでは使えません。JARを移動または名前変更した場合は、ビルドパスの登録も更新します。Javaのimport文は、プロジェクトからすでに利用できるクラスを指定するだけです。依存ライブラリをダウンロードしたり、不足を修復したりはできません。ビルドパスとソースのインポートが正しければ、描画メソッドからStdDrawを直接使えます。