私が現在扱っているのは、実行可能な .jar を含む Windows .exe です。さまざまな .exe および .jar デコンパイラーを使用して実行しようとしましたが、役に立ちませんでした。私の質問は、.exe に圧縮される前の状態の .jar を取得するにはどうすればよいですか?
プログラムを C++ または C# から Java に変換しようとしているのではなく、.jar を .exe にパックして生の .jar に戻そうとしていることに注意してください。
私が現在扱っているのは、実行可能な .jar を含む Windows .exe です。さまざまな .exe および .jar デコンパイラーを使用して実行しようとしましたが、役に立ちませんでした。私の質問は、.exe に圧縮される前の状態の .jar を取得するにはどうすればよいですか?
プログラムを C++ または C# から Java に変換しようとしているのではなく、.jar を .exe にパックして生の .jar に戻そうとしていることに注意してください。
exe にパッケージ化された方法に関する情報がまったくわからない場合、1 つの方法はClassLoader
、rt.jar のコアを置き換え、そのdefineClass
メソッドでデータをファイルに書き込むことです。このようにして、クラスがロードされるたびに、それぞれのファイルに書き込まれます。
これはハックであり、多くの落とし穴があることに注意してください。たとえば、リソースなどの他のデータは jar ファイルに含まれません。あなたの最善の策は、@HovercraftFullOfEelsが言及したようにパッケージ化された方法を見つけることです.
OpenJDK java.lang.ClassLoaderソース