1

誤ってシステムからいくつかの Java ソース ファイルを削除してしまいました。

これは、リポジトリからフォルダーを直接 eclipse プロジェクトとしてチェックアウトし、別の eclipse プロジェクトからフォルダーをこのプロジェクトにコピーしようとしたときに発生しました。不思議なことに、これらのフォルダー ファイルはすべてローカル システムから消えてしまいました (明らかに、SVN リポジトリーには作成されませんでした)。 )。

どういうわけか、いくつかの CLASS ファイルの .svn-base ファイルを取得しました。現在、クラス ファイルを逆コンパイルして、ソース コードを取得しようとしています。ただし、jd コンパイラがそれらを処理しようとすると、一部のクラス ファイルで「無効な入力ファイル」というエラーが発生します。これに対する他の解決策はありますか?

4

3 に答える 3

3

私の知る限り、「jd-gui」はクローズドソースであるため、開発者に連絡してそのメッセージの意味を確認する必要があるかもしれません。(オープンソースの場合は、ソースコードを調べて、起こりうる問題を特定することができます!)

ただし、Googleが提示するさまざまな質問から明らかなことがあります。それは、「jd-gui」がアーカイブ(JAR、EARなど)を逆コンパイルする方法を理解していないことです。したがって、それを機能させるには、何かをJAR解除する必要があるかもしれません。

(最初に)試すことができるもう1つのことは、「javap」が「jd-gui」が気に入らないクラスファイルをどのように作成するかを確認することです。

于 2012-08-01T06:28:47.660 に答える
0

JAD を使用してファイルを逆コンパイルしてみてください。

www.varaneckas.com/jad/

jarファイルを解凍してから、次のようなものを実行してすべてを逆コンパイルする必要がある場合があります

find <srcdirectory> -name *.class -exec jad -s .java -r -ff -clear -debug -d <dest directory> {} \;

上記のコマンドをテストしていませんが、うまくいけば、ほとんどそこにあります...

于 2012-08-01T12:31:15.157 に答える