-1

コードからクラスファイルに対してJADデコンパイラを実行しようとしています:

Process p = Runtime.getRuntime().exec("c:\\1\\jad.exe c:\\1\\EIn.class");
//All paths are correct, "c:\\1\\jad.exe c:\\1\\EIn.class" wotks when I run it in cmd

デバッグしてもエラーが発生しない場合、デバッガーは次の行に移動します...

私が置く場合:

int res = p.waitFor(); 

ハングするだけです。

アップデート:

BufferedReader in = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String str = null;
while ((str = in.readLine()) != null) { //Stucks here
}
4

3 に答える 3

1

デコンパイラはjadstdinを介したあなたからの入力を待っていますか?

発生しているエラーを確認するには、getOutputStreamgetErrorStream使用して、逆コンパイラーが何を書き込んでいるかを確認します。

このクラスを使用して、ProcessBuilderストリームのリダイレクトをもう少し快適にすることができます。

于 2012-11-19T13:04:15.847 に答える
0
public static void main(String[] args) throws Exception {

    String[] cmd = { "c:\\1\\jad.exe", "-c:\\1\\EIn.class" };
    Process p = Runtime.getRuntime().exec(cmd);
    p.waitFor();
}
于 2012-11-19T13:07:04.027 に答える
0

これは Java の TRAP です。このページを見てください。必要以上のものを手に入れることができます。

于 2012-11-19T13:10:14.033 に答える