6

という名前のjarファイルがあります"stdlib.jar"。これには多くのクラスがあり"Default Package"ます。stdlib.jarこれを NetBeans ライブラリに追加しました。また"Build"-ed、 から何も使用せずにstdlib.jar。それを私のフォルダstdlib.jarに追加することができます。"./dist/lib"しかし、それでも 内でクラスを使用することはできません 内でstdlib.jar クラスを再利用するにはどうすればよいstdlib.jarですか?

4

3 に答える 3

3

ライブラリやプロジェクトに「既定のパッケージ」パッケージを使用することはお勧めできません。デフォルトのパッケージを使用する場合、クラス名は一意である必要があります。そうしないと、すべてのjava.langクラスがオーバーライドされます。

今あなたの状況に来ています。stdlib.jarライブラリに追加した場合に使用するには、それを使用できるはずです。stdlib.jar使用しているプロジェクトのデフォルト パッケージから使用できます。デフォルトのパッケージ以外ではstdlib.jar、そのパッケージ内のクラスを検索するため、使用できません。

これで明確になることを願っています。ありがとう。

于 2012-08-22T05:50:10.590 に答える
1

Sedgewick の教科書または Coursera の Algorithms コースを使用している場合は、これが役立つ場合があります。

前述のとおり、stdlib.jar 内のライブラリは DEFAULT PACKAGE に含まれています。Java では、名前付きパッケージからデフォルト パッケージのクラスにアクセスすることはできません。そのため、ソース ファイルをプロジェクトの DEFAULT PACKAGE に移動する必要があります。これは、ソース .java ファイルを ./src/YOURPACKAGE/ フォルダーからプロジェクトの ./src フォルダーに直接移動してから、YOURPACKAGE フォルダーを削除する必要があることを意味します。また、「package YOURPACKAGE;」も削除する必要があります。ソースファイルの先頭にあるステートメント。

基本的にはそれだけで十分です。ソース ファイルをデフォルト パッケージに移動し、「stdlib.jar」をライブラリに追加すると、ライブラリからのクラスのアドレス指定に問題がなくなります。それらの「インポート」ステートメントは必要ありません。

于 2014-09-25T01:51:57.033 に答える
1

セジウィックの教科書を使っていますよね?もしそうなら、よくある質問を読んでください:

Q. 名前付きパッケージを使用してコードを構成すると、コンパイラは stdlib.jar 内のライブラリにアクセスできなくなります。なぜだめですか?

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

ここで同じ質問:ライブラリを取得して netbeans に適切にインポートする

于 2014-03-22T17:35:43.020 に答える