2014-01-20 9 views
7

環境

私はちょうど2つのファイルを持つ単純なtest-foo.jarライブラリがありますとのEclipse - 添付のソースなしでライブラリのJavaの参照を検索

  • インタフェースFoo
  • void doStuff()つのメソッドを持つクラス Barを単一のメソッド void executeFoo(Foo foo)、これは単に呼び出します foo.doStuff()

次に、FooImplという単一のクラスのEclipse Javaプロジェクトがあり、Fooを実装しています。このプロジェクトのビルドパスエントリはtest-foo.jarです。このJARのソースコードは添付されていません。

Eclipse project tree

問題

は、今私が実際にdoStuff()メソッドを呼び出すかについて少し興味があります言うことができます。だからFooImpl#doStuff署名をクリックし、Ctrl + Shift + G(参照を見つける)を押します。検索結果にBar#executeFooが表示されますが、結果は実際には空です。

Empty search results

質問

私は、これは(今より数年のためにEclipseを使用して)E​​clipseで動作すると思って、私は少し混乱しています。しかし、それはソースが添付されたライブラリ(これまで私が気づいていなかったもの)のためだけに機能するようです。

ソースがないプロジェクトライブラリのタイプ(またはメソッド)の参照(または使用)を見つける方法はありますか? Eclipseがインデックスを作成して.classのファイルの参照を表示しないのはなぜですか?


追加情報

  • 参照を見つけるとすぐに、私はJARにソースコードを添付して動作します。
  • 私は、Eclipse JDTの開発者がソースなしないインデックス検索.classに決めた理由を知ることに興味を持っています。
  • 私がソースコードを持っていなくてもと呼んでいるが非常に有用な情報であることに注意してください。
  • Eclipse is indexing method references.classにあります。
  • そして、NetBeansは "うまくいかない"ということもあります)。
+0

重複がありますか? http://stackoverflow.com/questions/5268998/find-methods-calls-in-eclipse-project –

+0

@MikeKoch nope ...その質問のOPは知りません。呼び出し階層は、メソッド参照の異なるビューです。私は知っている(少なくとも私は知っていると思う:))参照を検索する方法。ライブラリにソースが添付されていない場合は機能しません。 –

+0

barがfooImpl.doStuff()を参照しませんが、代わりにfoo.doStuff()を参照すると、fooImpl.doStuff()メソッドへの参照の検索と一致しません。 – DwB

答えて

0

あなたのライブラリにソースが添付されている必要があります。 Eclipseがコンパイルされたjamble-wamble(これは単なる私が思いついた言葉です)の束であるので、.classファイルにあなたを連れて行くことはありません。EclipseはJavaソースファイルにのみ移動します。

+0

これはなぜこの場合ですか?このメーリングリストまたは他の公式のメーリングリストに関連するメーリングリストディスカッションはありますか?私のために、私のインターフェースを呼び出すコンポーネントを知ることは、依然として非常に便利です。 –

+0

いいえ、公式のリファレンスはありません。それはまさにそれです。なぜあなたはコンポーネントを知る必要がありますか?それを見つけたら何をするつもりですか? – AxiomaticNexus

+1

少数のコンポーネントをリバースエンジニアリングする必要があります。特定のオブジェクトインスタンスを作成するコンポーネントを知っているだけで大​​きな価値があります。これがなければ、すべてのJARを手動で逆コンパイルしてソースファイルを添付してから参照を検索する必要があります。 –

関連する問題