我正在尝试使用 qemu-img 从 Java 代码创建磁盘空间,因此我实例化了进程和运行时类。运行程序时,尽管我使用相同的机制进行类似的执行,但命令没有执行,并且它工作正常。所以我想知道我是否在这里错过了什么。
StringBuilder commandBuilder = new StringBuilder("qemu-img create -f "+chosenStorageType+" ~/"+storageName+".img "+storageSize+"M");
System.out.println(commandBuilder);
String command = commandBuilder.toString();
System.out.println("this is the correct one: "+command);
System.out.println("Creating the image...");
Runtime runtime = Runtime.getRuntime();
Process process = null;
try {
process = runtime.exec(command);
System.out.println("from process try..catch");
} catch (IOException e1) {
e1.printStackTrace();
System.out.println(e1.getMessage());
}finally{
System.out.println("from finally entry");
process.destroy();
}
输出如下:
qemu-img create -f raw ~/testSPACE.img 23.0M
this is the correct one: /qemu-img create -f raw ~/testSPACE.img 23.0M
Creating the image...
from process try..catch
from finally entry
但是,如果我转到该目录,则不会创建该文件。
如果我将输出复制到终端中,只是为了测试它,一切都像魅力一样。