使用Process对象反编译一个.class类型文件,进程抛出一个异常

Just for fun! :-) 2020-12-16 09:59:48
使用Process对象反编译一个.class类型文件,进程抛出一个异常:
// 运行操作系统命令,并将输出发送到控制台。
package io;
import java.io.*;

public class OSExecute {
public static void command(String command) {
boolean err = false;
try {
// 根据传入的命令序列,创建一个进程
Process process = new ProcessBuilder(command.split(" ")).start();
// 获得该进程的输出流
BufferedReader results = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String s;
while((s = results.readLine()) != null)
System.out.println(s);
// 获得该进程的错误流
BufferedReader errors = new BufferedReader(
new InputStreamReader(process.getErrorStream(), "GBK"));
// 如果出现问题,报告错误并将非零值返回给调用进程:
while((s = errors.readLine()) != null) {
System.err.println(s);
err = true;
}
} catch(Exception e) {
// 如果是Windows 2000,它会抛出默认命令行的异常:
if(!command.startsWith("CMD /C"))
command("CMD /C" + command);
else
throw new RuntimeException(e);
}
// 如果进程自身在执行过程中产生错误,则抛出单独定制的运行时异常
if(err)
throw new OSExecuteException("Errors executing " + command);
}
}

package io;

public class OSExecuteDemo {

public static void main(String[] args) {
// 反编译OSExecuteDemo
OSExecute.command("javap /bin/io/OSExecuteDemo");
}

}

运行该程序后,结果如下:
Compiled from "OSExecuteDemo.java"
public class io.OSExecuteDemo {
public io.OSExecuteDemo();
public static void main(java.lang.String[]);
}
警告: 二进制文件/bin/io/OSExecuteDemo包含io.OSExecuteDemo
Exception in thread "main" io.OSExecuteException: Errors executing javap /bin/io/OSExecuteDemo
at io.OSExecute.command(OSExecute.java:34)
at io.OSExecuteDemo.main(OSExecuteDemo.java:6)

反编译命令执行正常,但老是抛出一个异常。请问这是什么原因造成的?如何解决?
...全文
115 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

试试改成javap /bin/io/OSExecuteDemo.class

Just for fun! :-) 2021-02-14
  • 打赏
  • 举报
回复
已经放了,但还是会抛出异常。反编译结果可以正常输出,但老是会抛出这么个异常。
交个小朋友 2021-02-14
  • 打赏
  • 举报
回复
OSExecuteDemo应该放到对应的路径里 就是放到io/OSExecuteDemo.class

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧