2017-04-26 8 views
0

私はここで多くのレガシーアプリケーションを扱っています。それらのうちの1つ(プロダクション環境に配備されている)は、ログを持たないため編集する必要があります。展開された.WARファイルからsrcを復元することは可能ですか?

私はそれを逆コンパイルしましたが、この状況でどのように再構成するかについてはわかりません。私はコンパイラの最適化のために編集された単一のクラスを再コンパイルすることすらできませんでした。

は(私は、Java 6を使用しています)

申し訳ありませんが私の英語が悪い場合、私はちょうどジュニア

+0

いいえ、一般的な場合はありません。通常Warファイルには、コンパイルされたバイトコード(バイナリ)ファイルのみが含まれています。ソースは利用できません。著者に尋ねれば、彼らはあなたにソースを提供することができるかもしれません。 – markspace

+1

私は@markspaceに同意します - 私は文を完全にはできないと言っているのではなく、 "実用的ではありません"と柔らかくするかもしれませんが、あなたがする必要があるのは恐らくサービスを一から書き直すよりもspring-bootやspring-dataのようなものを使っています。 –

+0

みなさんこんにちは。私たちはaspectを使って折り返し計画を立てました。あなたはこの質問でそれをよりよく説明することは大丈夫だと思いますか? @EngineerDollery – maihe

答えて

2

号A WARファイル午前コンパイルに加えて、含まれているだけで、特殊なJARファイルですバイトコード、JSPファイル、静的HTMLファイル、およびWebサーバーにアプリケーションのデプロイ方法を知らせる記述子ファイルが含まれています。それが含まれていないものは元のソースコードです。これは、コンパイルされていないコードで作業する唯一のオプション、または元の開発者にソースコードを尋ねる唯一のオプションを意味します。

0

あなたが発見したように、コンパイルと逆コンパイルは不可解なプロセスなので、逆コンパイルされたコードを再コンパイルすることはできず、コンパイルしても元のバイナリと同じではない可能性があります。

もう1つの方法はKrakatau disassembler and assemblerです。 KrakatauはJavaバイトコードを人間が読めるテキスト形式に変換できるため、バイトコードを無損失で簡単に編集できます。主な欠点は、逆アセンブリを理解するためにJavaバイトコードをよく理解していなければならず、Javaソースコードよりも読み込みや編集がずっと難しいことです。

関連する問題