4

クラス内のメソッドのリストを表示するための1つのリストボックスを備えた1つのGUIがあります。私は反射を使用してそれを達成することができます。しかし、メソッド名を選択するときに別のテキスト領域でソースコードを表示できますか?

私は逆コンパイラについて知っていました。しかし、私は彼らのウィンドウにソースコードを見たくありません。

特定のメソッドのソースコードを自分のGUIで確認できるように、サードパーティのライブラリを使用したいと思います。

このために利用可能なAPIがあるかどうかを提案してください。

4

4 に答える 4

4

リンクできるある種の逆コンパイラが必要になります。ライブラリがあるかどうかはわかりませんが、ここにJDJavaDecompilerへのリンクがあります。

コンパイル中に変数名などが失われることを忘れないでください。逆コンパイルすると、結果のソースコードが読みにくくなる可能性があります。

ソースにアクセスできる場合は、それをクラスファイルにリンクし、リンクされたソースファイルで選択したメソッドソースを見つけることができます。これは、ソースファイルの単純なワンパス解析によって実現できます。

最大の問題は、メソッドがいつ終了するかを判断することです。簡単な解決策は、{'sと'sをカウントし、メソッド宣言のが}いつ閉じられるかを判断することです。{

于 2010-08-16T13:56:19.640 に答える
1

This is an old question, but seeing as the decompiler landscape has changed significantly in the past year, I feel it's worth resurrecting.

Procyon is an open source framework that contains, among other things, a Java decompiler. It is written in Java, and the decompiler APIs can be integrated into another application fairly easily. In fact, there are already two third-party GUI front-ends, including the SecureTeam Java Decompiler.

CFRにはまだ利用可能なソースコードがありませんが、優れた逆コンパイラーでもあります。これもJavaで書かれており、既存のアプリケーションとの統合は試みていませんが、確かに可能であるはずです。

于 2013-11-07T14:41:49.577 に答える
0

私はかつて、独自のソースコードビューアを含むアプリケーションを作成しました。かなりの依存関係がある可能性がある逆コンパイラーの良い代替手段だと思います。

私はNetBeansを使用していたので、.javaファイルのパッケージ化は1つのフィルターオプションを変更するのと同じくらい簡単でした。Javaプロパティをチェックしてjarファイルを見つけ、それを他のzipファイルと同じようにスキャンしてJavaソースファイルを探しました。このアプローチでは、JTreeTableにソースファイルが入力されたGUIと、ソースコードを表示するJTextAreaを使用するのは簡単でした。

選択したメソッドのみを含むようにソースをクリップするという、もう1つのステップを追加することで同じことができると思います。かっこを開いたり閉じたりすることを数える単純なパーサーに要約する必要があると思います。

于 2010-08-16T14:05:10.713 に答える
0

必要に応じて以前の回答を残しておきますが、JODEは長い間更新されていません。調べてみると、オープンソースまたはライブラリ形式で利用できる逆コンパイラが見つかりません。

JODE may be just what you want. The core decompiler is released as a library under the GNU LGPL, so you can integrate it into your program with no issues.

于 2010-08-16T14:18:52.707 に答える