20

今朝厄介な問題に遭遇し、それを追跡するのに数時間かかりました。2 つの NetBeans プロジェクトAB. どちらも正常にビルドおよび実行されます。複雑な Ant ビルド タスクはありません。デフォルトの IDE セットアップのみです。

これら 2 つのプロジェクトは大量のコードを共有しているため、新しい 3 番目のプロジェクトCommon. 参照などを解決した後、NetBeans はエラーを報告しません。すべて問題ないようです。Common滞りなくプロジェクトをビルドします。その後、事態は奇妙になります。

突然、プロジェクトAとをビルドしようとするとB、正常にコンパイルされますが、ビルドの最後に、それぞれが同じエラーで壊れます。

Copying 1 file to C:\Projects\projectName\build
C:\Projects\projectName\nbproject\build-impl.xml:723: The following error occurred while executing this line:
C:\Projects\projectName\nbproject\build-impl.xml:543: taskdef class org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs cannot be found
 using the classloader AntClassLoader[]
BUILD FAILED (total time: 3 seconds)

すべての.classファイルが に表示され、他のすべては順調に進んでいるように見えますが、フォルダbuild/classesには何もありません。distそれで問題の検索が始まりCopyLibsます。

人々は、それがファイルorg-netbeans-modules-java-j2seproject-copylibstask.jarで正しく参照されていることを確認することを提案しました (そうでした)。またproject.properties<userhome>/.netbeans/version/build.propertiesファイルでも (そうでした)。ライブラリ、参照されているすべての場所に存在します。実際、NetBeans はデフォルトで、この jar のコピーを./libすべての Java プロジェクトのフォルダに配置しているようです。まったく新しいプロジェクトを作成し、ソースを手動で取り込もうとしましたが、役に立ちませんでした。私は戸惑いました。

私は次のことを期待してここに投稿しています:

  • そもそもこれがどのように発生したか、およびそれを回避する方法について、誰かが私に洞察を与えることができるかもしれません。
  • すべてがまったく同じファイルを持っているか、まったく新しい場合でも、特定のプロジェクトだけが壊れる理由を誰かが教えてくれるかもしれません。project.properties
  • 将来この問題を抱えている人は、より良い時間を過ごすことができます。
4

4 に答える 4

28

私がオンラインで見つけることができる最も近い修正は、部分的な解決策のみを含むこのリンクです。その投稿の指示に従っても問題は解決しません。重要なことがいくつか抜け落ちているからです。これが私が最終的につまずいた解決策です。

NetBeans では、次の場所に移動します。

Tools > Options > Miscellaneous > Ant

ウィンドウの下部に、 というラベルの付いたボックスがありますProperties。以下を貼り付けます。

libs.CopyLibs.classpath=C\:\\Program Files\\NetBeans 7.1\\java\\ant\\extra\\org-netbeans-modules-java-j2seproject-copylibstask.jar

NetBeans 7.1実際のインストール パスに置き換えます。それだけです。難しいのは、 をクリックすると、NetBeans がこのフィールドのテキストを解析しているように見えることですOK。具体的には、バックスラッシュをエスケープとして扱い、バックスラッシュを追加することもあります。

これが、見つけるのに非常に時間がかかった理由です: リンク内の解決策 (例C:\Program Files\Netbeansなど) を試しましたが、うまくいきませんでしたが、後でこのウィンドウに戻ってこれを発見しました:C\:Program Filesなど. 「ああ!」「タイプを間違えただけだ!バカだ!」と思いました。だから私はそれを「修正」してC:\再試行しましたが、まだ成功していません。NetBeans はescape にバックスラッシュを追加:しますが、ここで見つかった他の単一のバックスラッシュは削除するだけです。

なぜこれが最初に起こったのか、なぜ特定のプロジェクトにのみ影響を与えるように見えるのか、私はまだ知りません.

于 2013-06-06T22:39:34.287 に答える
9

私の Mac には NetBeans 7.1.2 があり、それをアンインストールしてから 7.3.1 をインストールしました。同じエラーが発生しました。修正するために私がしなければならなかったことは次のとおりです。

NetBeans メニュー > 設定 > Java タブ > Ant サブタブ > プロパティ

プロパティにはアプリの古い番号がまだ残っていることに気付いたので、7.1.2 を 7.3.1 に変更する必要がありました。

ここに画像の説明を入力

私を正しい軌道に乗せてくれてありがとう!

于 2013-11-23T17:23:45.060 に答える
0

私のセットアップの問題は、ライブラリとして含めたプロジェクトにあることが判明しました。アップグレードされた CopyLibs フォルダーではなく、CopyLibs-2 フォルダーがまだありましたが、nblibraries.properties にはアップグレードされた libs.CopyLibs が含まれていました。アップグレードをトリガーする方法がわからないため、代わりに次のことを行いました。

  1. lib/CopyLibs-2 を削除
  2. Libraries フォルダーを右クリックし、[ライブラリの追加] を選択します。
  3. インポートされた CopyLibs タスク
  4. CopyLibs Task ライブラリを追加

これにより、CopyLibs がライブラリ フォルダーに表示されました。これは、jnlp フォルダーのように通常は非表示になっているため、少し奇妙に見えましたが、Tools > Java > Ant Properties でグローバルな libs.CopyLibs.classpath を設定しなくても機能しました。

正しい方法で内容をクリアして追加するには、数回の試行が必要でした。追加しても問題が表示される場合があり、解決メッセージは「"CopyLibs" ライブラリに欠落している項目があります」および「問題: プロジェクトは "CopyLibs" というクラス ライブラリを使用していますが、このライブラリのクラスパス項目が欠落しています」です。プロセス全体がとても面倒で魔法のようである理由がわかりません。

また、コミット時に、IDE が私の project.properties を更新して、javac.classpath を何もないものから ${libs.CopyLibs.classpath} に変更したことに気付きました。

于 2015-08-19T22:50:52.433 に答える