【发布时间】:2015-05-11 11:15:18
【问题描述】:
在我使用 ISO Writer 刻录 CD 的程序中,由于 link 我的代码应该在写入后弹出 cd,因为 -e 命令行,它会刻录到 cd 但写入后不会弹出它,我不知道是什么问题?
//Library that use to create iso file
File mkisofs = new File("lib/cdrtools/mkisofs.exe");
//The root of file that we want to write on DVD
File source = new File(new ProductUtil().getProductDir()+ "\\output\\Autorun");
//Destination that the iso file will be save on it.
File destination = source.getParentFile();
//Library that use to write iso file
File isoWriter = new File("lib/isowriter/ISOWriter.exe");
String command = mkisofs.getPath()+" -UDF -o \'"+destination.getAbsolutePath()+"\\cd.iso\' \'"+source.getAbsolutePath()+"\'";
Process createIso = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(createIso.getErrorStream()));
String line = "";
String all = "";
while((line = reader.readLine()) != null) {
all += line+"\r\n";
}
if(createIso.waitFor() != 0) {
JOptionPane.showMessageDialog(null, all,"Error on creating ISO file: ("+createIso.waitFor()+")",JOptionPane.ERROR_MESSAGE);
return null;
}
command = isoWriter.getPath()+" -s 16 -e \""+destination.getAbsolutePath()+"\\cd.iso\"";
System.out.println(command);
Process writeIso = Runtime.getRuntime().exec(command);
这是我在以这种格式添加驱动器名称时遇到的错误:
command = isoWriter.getPath()+" f: -s 16 -e \""+destination.getAbsolutePath()+"\\cd.iso\"";
【问题讨论】:
-
使用 ProcessBuilder,它提供了更好的方式来形成要执行的命令。
-
我对此一无所知,请您提供更多指导,我该怎么做? @SachinGorade
-
试试看official documentation,介绍中有例子。
-
示例:ISOWrite -re: -e C:\Data\image.iso 使用可刻录驱动器E:,完成后弹出。烧录 c:\data\image.iso
-
我理解这个例子,但为什么我的代码即使使用 -e 也不起作用? @SantoshShinde
标签: java command-line cd-rom cd-burning