0

Eclipse (Juno) で大規模なJava プロジェクトのリファクタリングを多数行っています。

スーパークラスに移動したい特定のメソッドでコンテキストメニューとリファクタリング>プルアップを開くと、次の通知が表示されます。

このタイプではプルアップは使用できません。すべてのスーパー タイプはバイナリです。

これは、私のプロジェクトで現在jarとしてコンパイルされている別のパッケージからスーパークラスがインポートされているためだと確信しています。もちろん、この jar を編集して再コンパイルできます。そのため、問題はソースにアクセスできないことではなく、Eclipse が他のパッケージでソースを見つけられないことです。

だから私の質問:

回避策/解決策はありますか?

私が試みたのは、メソッドを手動で移動することですが、もちろん、私はそうしたくありません。さもないと、そもそも Eclipse のリファクタリング機能を使用しないでしょう。その上、私が移動しているほとんどのメソッドは、他の多くのプライベート メソッド呼び出しを含む大きなメソッドであるため、Eclipse はそれらを見つけて一度に移動するという素晴らしい仕事をしてくれます。コード ベースは非常に大きく、それらを手動で移動すると、すぐに混乱し、エラーが発生しやすくなります。

編集

与えられたコメントと回答に基づいて、明確化が必要なようです。

Simon André Forsberg による 1 つの回答は、「jar」プロジェクトを Java ビルド パスに追加することを提案しています。これはすでに行われています。にもかかわらず、私はまだ通知を受け取ります。

1つのコメントは次のとおりです。

わかった。Eclipse に何をしてほしいかを正確に教えてください。入手可能な情報に基づいて、Eclipse がそれを確実に実行できる方法についてのヒントを教えてください。– PM 77-1

  1. pull up...「このタイプではプルアップを使用できません。すべてのスーパー タイプはバイナリです」という通知ではなく、Eclipse でリファクタリング ウィザードを表示することを希望します。

  2. Eclipseがそれを確実に行う方法がわかりません。そのため、この質問を投稿しました。

4

1 に答える 1

2

プロジェクトを再コンパイルして別の JAR をエクスポートできるからといって、それが可能であることをEclipseが認識しているわけではありません。

ワークスペースで他のパッケージを使用できる場合は、最初にプロジェクトを jar にコンパイルする代わりに、プロジェクトをビルド パスに追加できます。ワークスペースで別のプロジェクトのコードを使用する必要があることを Eclipse が認識している場合、Eclipse はそのプロジェクトのソースを見つけて操作する方法も認識します。

あなたがすべきことは、プロジェクトをビルドパスに追加し、JAR ファイルを除外することです

このスクリーンショットは、別のプロジェクトをビルド パスに追加する場所を示しています。これは、Eclipse wiki から取得したものです。

プロジェクトをビルド パスに追加するための Eclipse ダイアログ

于 2013-11-12T17:08:18.773 に答える