2013-02-21 10 views
16

私はCoursera Algorythms courseを開始しました。練習の割り当てはJavaで行う必要があり、IDEとしてDrJavaを使用することを提案しますが、実際には不便です。 Eclipseを使いたいのですが、問題は、このコースで提供されている2つのライブラリ(algs4.jarstdlib.jar)を使用できないことです。アルゴリズムのライブラリの使い方パートI EclipseのCourseraコース

enter image description here

が、私は私のプロジェクトでそれらのクラスを使用しようとすると、Eclipseはそれを行うことはできません、と私は「couldn:this guideからの手順を行った後、私は私のプロジェクトに含めることができました

enter image description here

そして、私はそれはまだない作品を行いimport stdlib.StdRandom;のように直接クラスをインポートしようとしているにも:トンCTRL +スペースでそれらをインポートします。

正しく動作させるためには、どうすればいいのか教えてください。

答えて

15

これらの2つのJAR(stdlib-package.jarおよびalgs4-package.jar)を使用しないのはなぜですか。

そして、私は私のコードを構造化するという名前のパッケージを使用する場合は、コード・ページ(http://algs4.cs.princeton.edu/code/

Q.下に、コンパイラはもはやstdlib.jarまたはalgs4.jarでライブラリにアクセスすることができます。何故なの?

A. stdlib.jarおよびalgs4.jarのライブラリは、「デフォルト」パッケージに含まれています。 Javaでは、名前付きパッケージからデフォルトパッケージのクラスにアクセスすることはできません。名前付きパッケージでライブラリを使用する必要がある場合は、stdlib-package.jarおよびalgs4-package.jarのパッケージ・バージョンを使用できます。

警告:Princeton COS 226またはCoursera、Algorithms、Part IまたはIIを使用している場合、グレーディングを容易にするために、ライブラリのデフォルトパッケージverisonを使用する必要があります。私のテストの成功表示

Showing my test success

5

JARを含めるには、左側のプロジェクトエクスプローラパネルのプロジェクト/オブジェクトツリーの上部を右クリックし、「ビルドパス/ビルドパスの設定」をクリックし、「ライブラリ"タブ、"外部ジャーを追加 "を追加してください。

ソースコードを編集している間も、それ以降Eclipseでビルドしている間も、うれしく役立つはずです。

入力時にクラス名が正しいと仮定すると、コード内のクラス名にカーソルを置くことができ、intelli-sense/auto-complete機能はどこからインポートするべきかを示唆します。正しいライブラリにインポートを簡単に追加できます。

+0

ライブラリが追加されましたが、まだクラスを使用できませんでした。 このlibs:introcs.cs.princeton.edu/stdlib/stdlib.jar、algs4.cs.princeton.edu/code/algs4.jarをダウンロードしてインポートできますか? – Seekeer

+1

私はjarファイルを追加し、両方ともBinaryInとPictureクラスを使用できました。実際に興味があった輸入声明は実際には必要なかった。クラスは、参照されているアセンブリをブラウズすることで(ビルドパスに追加した後に)上記の答えを示したように、Eclipseで開いたときにクラスが定義されていないようです。だから、あなたの問題が何であるかは分かりません。新しいEclipseプロジェクトを作り、これをやってから最初からやり直してください。時にはEclipseが混乱し、Intellisenseが私の経験でクラスを提案するのを止めることがあります。プロジェクトをリメイクすると修正されます。 –

+0

私は何度もプロジェクトやワークスペースを再作成しましたが、それはまったく役に立ちません。 Khalid Amiriが提供するリンクを使用すると、このlibsが(デフォルトの)パッケージを使用している可能性があることを認識しました。だから私はどのように私はデフォルトのパッケージからクラスを使用することができますを見つけるしようとしています... – Seekeer

3

以下の手順に従います。

プロジェクトを右クリックし、[プロパティ]をクリックします。これは、選択の左側から「Javaのビルド・パス」次のウィンドウ

enter image description here

を開きます。今すぐ右側からのJARファイルを追加

enter image description here

"外部JARの追加" に

enter image description here

をクリックし、 "ライブラリ" タブを選択します。

今、あなたは何のパッケージ構造がライブラリに存在しないので、それはおそらくですので、あなたはそれからクラスをインポートすることはできません

+0

私は説明し、ライブラリをインポートしたが、それらから何も使用することはできません:http://i.stack.imgur。 com/0wZAG.png このlibsをダウンロードしてみてください:http://introcs.cs.princeton.edu/stdlib/stdlib.jar、http://algs4.cs.princeton.edu/code/algs4.jar、importあなた自身ですか? – Seekeer

8

APIにアクセスすることはできません。作成者がデフォルトパッケージでAPIを定義し、Javaがこれを認識しないためです。著者らはWebサイト(http://algs4.cs.princeton.edu/code/)に、名前付きパッケージでこれらを使用している場合は、http://algs4.cs.princeton.edu/code/stdlib-package.jarhttp://algs4.cs.princeton.edu/code/algs4-package.jarの2つのjarを組み込むようにビルドパスを構成すると述べています。

HTH!

+2

更新日:2015年8月17日現在、パッケージは1つだけです:http://algs4.cs.princeton.edu/code/algs4-package.jar。 stdlib-package.jarのクラスはすでにalgs4-packageに含まれています。瓶。 Sourse:http://algs4.cs.princeton.edu/code/ – cosmolev

1

1つのオプションは、slokによって提供さmaven repo on githubがあるということです。これの悪い部分は、デフォルトのパッケージを使用しているものが追加されたジャーであるため、パッケージ構造を使用できません。

UPDATE:私はレポにjarファイルのパッケージのバージョンを追加したとが、それは今受理されたプルリクエストを作成しました。

プリンシオンの元のパッケージ構造と一致するように識別子を変更しました。彼らのウェブサイトから

<dependencies> 
    <dependency> 
    <groupId>edu.princeton.cs.introcs</groupId> 
    <artifactId>algs4-package</artifactId> 
    <version>1.0</version> 
    </dependency> 

    <dependency> 
    <groupId>edu.princeton.cs.introcs</groupId> 
    <artifactId>stdlib-package</artifactId> 
    <version>1.0</version> 
    </dependency> 
</dependencies> 

<repositories> 
    <repository> 
    <id>org.coursera.algs4</id> 
    <name>Algs4 coursera course custom repository</name> 
    <url>https://raw.github.com/slok/algs4-mvn-repo/master</url> 
    </repository> 
</repositories> 
1

http://algs4.cs.princeton.edu/code/

エクリプス(マニュアル)。 stdlib.jarとalgs4.jarをフォルダにダウンロードし、Project - > Properties - > Java Build Path - > Libaries - > External JARの追加を使用して、各jar>ファイルをクラスパス変数にプロジェクトのビルドパスに追加します。

関連する問題