という名前のjarファイルがあります"stdlib.jar"
。これには多くのクラスがあり"Default Package"
ます。stdlib.jar
これを NetBeans ライブラリに追加しました。また"Build"-ed
、 から何も使用せずにstdlib.jar
。それを私のフォルダstdlib.jar
に追加することができます。"./dist/lib"
しかし、それでも 内でクラスを使用することはできません 内でstdlib.jar
クラスを再利用するにはどうすればよいstdlib.jar
ですか?
3 に答える
ライブラリやプロジェクトに「既定のパッケージ」パッケージを使用することはお勧めできません。デフォルトのパッケージを使用する場合、クラス名は一意である必要があります。そうしないと、すべてのjava.lang
クラスがオーバーライドされます。
今あなたの状況に来ています。stdlib.jar
ライブラリに追加した場合に使用するには、それを使用できるはずです。stdlib.jar
使用しているプロジェクトのデフォルト パッケージから使用できます。デフォルトのパッケージ以外ではstdlib.jar
、そのパッケージ内のクラスを検索するため、使用できません。
これで明確になることを願っています。ありがとう。
Sedgewick の教科書または Coursera の Algorithms コースを使用している場合は、これが役立つ場合があります。
前述のとおり、stdlib.jar 内のライブラリは DEFAULT PACKAGE に含まれています。Java では、名前付きパッケージからデフォルト パッケージのクラスにアクセスすることはできません。そのため、ソース ファイルをプロジェクトの DEFAULT PACKAGE に移動する必要があります。これは、ソース .java ファイルを ./src/YOURPACKAGE/ フォルダーからプロジェクトの ./src フォルダーに直接移動してから、YOURPACKAGE フォルダーを削除する必要があることを意味します。また、「package YOURPACKAGE;」も削除する必要があります。ソースファイルの先頭にあるステートメント。
基本的にはそれだけで十分です。ソース ファイルをデフォルト パッケージに移動し、「stdlib.jar」をライブラリに追加すると、ライブラリからのクラスのアドレス指定に問題がなくなります。それらの「インポート」ステートメントは必要ありません。
セジウィックの教科書を使っていますよね?もしそうなら、よくある質問を読んでください:
Q. 名前付きパッケージを使用してコードを構成すると、コンパイラは stdlib.jar 内のライブラリにアクセスできなくなります。なぜだめですか?
A. stdlib.jar のライブラリは「デフォルト」パッケージにあります。Java では、名前付きパッケージからデフォルト パッケージのクラスにアクセスすることはできません。名前付きパッケージでライブラリを使用する必要がある場合は、パッケージ化されたバージョンのstdlib-package.jarを使用できます。
ここで同じ質問:ライブラリを取得して netbeans に適切にインポートする