我正在尝试使用 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
但是如果我进入该目录,则不会创建该文件。
只是为了测试它,如果我将输出复制到终端,一切都会像魅力一样工作。
我是一名优秀的程序员,十分优秀!