2011-01-07 64 views
3

私はチームメイトから新しいSOAPサービスクライアントJARを受け取りました。これをアプリに統合するのに忙しいです。私はJARを適切なパスに入れて、前のバージョンを上書きします。私は自分のワークスペースをリフレッシュし、CleanとBuildを実行しましたが、...Eclipseが新しいJARを認識しないのはなぜですか?

... JARからコードを利用しても、IntellisenseでJAR内のクラスを見ることはできませんコンパイルして正しく実行します。さらに、EclipseはJARの以前のバージョンを使用しようとしています。つまり、「修正のインポート」を実行すると、新しいクラスではなく古いクラ​​スが再インポートされます。

コードのビルドと実行されますが、私は比較的とは対照的に、絶対にクラスを参照する必要があります。

org.acmewidgets.soap.inputs.HeaderType header = new org.acmewidgets.soap.inputs.HeaderType() 

代わりの

HeaderType header = new HeaderType() 

JARの以前のバージョンでは、これを必要としませんでした。

Eclipseに古い参照を読み込ませ、新しい参照を使用させるにはどうすればよいですか?または、Eclipseがうまく動いていて、新しいJARが疑わしいですか?

ありがとうございます!

+0

を試してみてください? –

+0

Eclipseのプロジェクトクラスパスに追加しましたか?プロジェクトを右クリックし、プロパティー> Javaビルド・パス>ライブラリーに進みます。新しいJARの代わりに古いJARがまだそこにリストされていることがあります。 –

+0

また、Windowsエクスプローラ(またはMac Finder、またはコマンドラインなど)を使用してJARファイルをコピーしましたか? Eclipseで変更を加えても、Eclipseはファイルシステムの変更を自動的に受け取りません。プロジェクトをリフレッシュしてみてください(右クリック>リフレッシュ)。 –

答えて

5

何かが壊れているように見えます。閉鎖し、解決しないプロジェクトを再度開く場合は、順序でこれを試してください:あなたのプロジェクトがワークスペースから他のプロジェクトに依存

  • 場合は、クラスパスに JARファイルで終わることができました。テストやアプリケーションを実行してから、「デバッグ」パースペクティブに切り替え、プロジェクト(終了している)を選択し、コンテキストメニューから「プロパティ」を選択します。これは、使用されたクラスパスを提供します。

    これをテキストエディタにコピーし、JARファイルを検索して、クラスパスに1つのコピーのみがあることを確認します。

  • 作業領域でJArファイルを検索します。おそらく、あなたが期待していない2番目のコピーがあります。

  • 新しいワークスペースを作成します(古いものは削除しないでください)。プロジェクトをインポートします。それは役に立ちますか?

  • は、Eclipseの最新バージョン(3.6.1)のEclipseのバージョン

+0

私は、これらの手順を実行する前に、プロジェクトをリフレッシュすることをお勧めします。 OPは単に別のプログラムを使ってファイルをコピーしているかもしれません... EclipseはEclipse外で行われた変更を自動的に検出しません。 –

+2

ビンゴ!プロジェクトを終了して再開することは、私が試していないことの一つです。奇妙なことにはうまくいったが、Eclipseを閉じて開くこと自体はできなかった。ありがとう! –

+0

@IVR、キャッシュの問題。 Eclipseは実際にはjarをアップグレードするための機能を持っています - おそらく次回はそれを使用しますか? –

関連する問題