Runtime.exec在最新Java更新后不工作?

Runtime.exec在最新Java更新后不工作?,java,file,apk,decompiler,Java,File,Apk,Decompiler,这是我的问题:我正在开发一个反编译APK文件的程序。它起作用了。在上一次Java更新之后,我的应用程序给了我一个异常 请帮帮我 更新: 新Java版本-版本7更新2 堆栈跟踪: 线程“main”java.lang.IllegalArgumentException中出现异常:可执行文件名中嵌入了引号,拆分参数 在java.lang.ProcessImpl.isQuoted(未知源代码) 位于java.lang.ProcessImpl.getExecutablePath(未知源) 位于java.

这是我的问题:我正在开发一个反编译APK文件的程序。它起作用了。在上一次Java更新之后,我的应用程序给了我一个异常

请帮帮我

更新:

  • 新Java版本-版本7更新2

  • 堆栈跟踪:

    线程“main”java.lang.IllegalArgumentException中出现异常:可执行文件名中嵌入了引号,拆分参数 在java.lang.ProcessImpl.isQuoted(未知源代码) 位于java.lang.ProcessImpl.getExecutablePath(未知源) 位于java.lang.ProcessImpl。(未知源) 位于java.lang.ProcessImpl.start(未知源) 位于java.lang.ProcessBuilder.start(未知源) 位于java.lang.Runtime.exec(未知源) 位于java.lang.Runtime.exec(未知源) 位于java.lang.Runtime.exec(未知源) 在ro.etrandafir.mate.PC.decompile.StartingPoint.execute(StartingPoint.java:146) 位于ro.etrandafir.mate.PC.decompile.StartingPoint.main(StartingPoint.java:25)

  • 源代码:

    try {
        Process p = Runtime.getRuntime().exec("\"" + apktoolBat
                .getAbsolutePath() + "\" d -s " + fn);
        BufferedReader br = new BufferedReader(
                new InputStreamReader(p.getInputStream()));
        String line = null;
        while ((line = br.readLine()) != null) {
            System.out.println("Apktool: " + line);
        }
    } catch (IOException e) {
        System.err.println("ERROR: Could not use APKTOOL!");
        e.printStackTrace();
        return;
    }
    

提前谢谢

此功能在新的java版本中已更改。有关更多详细信息,请参阅。

为什么不直接在帖子中包含错误消息和堆栈跟踪?它在屏幕上。不管怎样,我现在就在这里发布。在你的帖子中发布来源、错误消息和跟踪信息会让其他人更容易帮助你,因为他们不必检查链接是否导致不可靠的来源、单击链接、加载图像等。这也是一种好的做法,因为你的帖子不会受到链接腐朽的影响,因此在将来对其他人更有帮助。Mediafire、Google Drive或Dropbox链接都不会“消亡”,所以我将这些文件放在一个名为“请勿删除”的文件夹中。无论如何,如果您想反编译apk,这个程序将非常有用,它运行apktool、dex2jar和jad,并将结果放在一个文件夹中,从而生成一个eclipse项目,可以进行编辑和重新编译(资源、xml、代码等)。谢谢。请不要投反对票!我不想被禁止。我只有18岁。再次感谢你的链接,它真的帮助了我。