2011-01-19 4 views
0

私はNetbeansで "ゴーストファイル"に遭遇しましたが、その証拠はありませんでしたので、私はそれと一緒に生活しなければならず、状況を説明しようとしたとき、今信じるのは難しいです私はそれを証明しており、それはショーストッパーです、それに対する修正はありますか?Netbeansゴーストファイルショーストッパー、どのようにそれを修正するには?

これは私が長年使用してきたJavaクラスをツールの一種としています。私は経験が豊富なので少し追加しますが、しばらくして新しいメソッドを使用して別のクラスで使用すると、Netbeansはそれを認識できませんでした。Netbeansは、新しく追加されたメソッドが存在しなかったクラスの古いコピーをまだ見ていました。それでも、この更新されたクラスを別のプロジェクトにコピーすると、新しいメソッドが正常に動作し、Netbeansはそれを見つけることができます。 NB 6.7では、クラスが凍ったように振る舞いました。新しい追加は認識されませんでしたが、今度はNB 6.9で試しましたが、 "幽霊"を捕まえることができました!

偶然、昨日私がクラスを更新した後、同じプロジェクトの別のクラスで新しいメソッドを使用しようとしましたが、赤い旗が上がって新しいメソッドが見つかりませんでした。新しいメソッド呼び出しを右クリックし、 "Navigate" => "Go to source"をクリックして、ゴーストが現れたことを確認してください! NB 6.7でこれを行うと、それが見つからないと言っているように鐘が鳴り響いただけです。しかし、NB 6.9では、それは私のJavaクラスのソースファイル[Get_Time.java]ではない "ソース"に行きます。それは別の生成されたファイルなので、開いた "ゴースト"ファイル名をエディタに表示しました。 :\ Users \ USER.netbeans \ 6.9 \ var \ cache \ index \ s117 \ java \ 14 \ gensrc \ Get_Time.java(読み込み専用) "、コンテンツは私のソースファイルGet_Time.javaのスケルトンのようですが、間違いなく異なっていて、私はそれが問題を引き起こしているこの「ゴーストファイル」だと確信しています。

私は2016年に現在の時刻を変更してソースファイルを変更すると、ゴーストファイルが壊れてしまい、クラス内のさまざまな機能をテストするために時々システム時間を変更しました。 2016年に最後に変更されたファイルを記録し、2011年に戻って新しい関数を追加すると、それは受け入れられません。ソースファイルの異なるバージョンの日付を比較し、切手" ?!

NBがゴーストファイルを保存しないことを願っています。「常に実際のソースファイルを使用する」とすると、このような問題は避けられます。そのゴーストファイルを削除しようとしましたが、次にコンパイルしたときに再び生成されます。私は "C:\ Users \ USER.netbeans \ 6.9 ..."からあまりにも多くのコンテンツを削除したくない、それは私のNBの設定を混乱させるかもしれない。とにかく、今はショーストッパーになっています。私はクラスにもっと多くの変更を加えることはできません。時間通りに凍結されていますが、修正は何ですか?

+1

「クリーン&ビルド」を試しましたか? –

+0

言うまでもなく、これは最初のオプションです。CleanとBuildの後に、Get_Time.javaで新しいメソッドを使用しようとしているクラスでエラーが発生しました。プロジェクトの中と外にソースファイルを複数回移動しました。仕事はありません。 – Frank

答えて

1

この問題で私が以前に突っ込んだようなちょっとした提案です。 jarファイルを作成し、このjarファイルに依存関係を手動で追加しましたか?

1)プロジェクトAは、時間クラスでA.jarにパッケージ化されています。

2)プロジェクトBははA.jarに依存し、Aは

を変更されたプロジェクトで

3)Time.javaを投影し、それが常にから読んであげると、変更は表示されません

4)プロジェクトB変化が起こる前に建てられたA.jar。

+0

Bang !!!ターゲット上で右に!それはちょうど、私は瓶を戻ってパッケージ化されていた、私はそれを忘れて、古いGet_Time.javaのバージョンは、すべての混乱を引き起こした、ありがとう! – Frank

1

将来に戻って過去に転送するときに、NetBeansのキャッシュ(~/.netbeans/6.9/var/cache/index/ディレクトリ)を削除してみてください。 NetBeansはおそらく、ファイルのタイムスタンプによってちょっと混乱しています。そのような日付の周りを飛び回ることは多分縁起のケースなので、NetBeansが修正/処理を試みる際に優先順位を与えるだろうとは思えません。

+0

私は将来行く予定がわかりません。このクラスの古い記憶をすべて削除する方法はありますか? "〜/ .netbeans/6.9/var/cache"を削除した場合、IDEに何らかの問題が発生しますか? – Frank

+0

私は '〜/ .netbeans/6.9/var/cache/index /'の**コンテンツ**を削除します。あなたがおそらく残したいと思う.../'/ var/cache'には他のものがあります。私が常に見たアドバイスは 'index'ディレクトリに限られています。私はちょうどそれを行い( 'index'の内容を削除しました)、すぐに見える負の副作用はありませんでした。 – RobertB

+0

NetBeansは実行できません(または、一部のファイルは削除されません)。また、 '〜/ .netbeans/6.9/var/filehistory /'があり、NetBeansは 'Local History'関連のコマンドに必要なものを保持しています。私はそれを削除しようとしたことはありません。キャッシュ/インデックスが助けにならない場合は、**ファイル名を変更して空白を作成して、削除に影響するものを確認してみてください。 – RobertB