Почему при попытке открыть / закрыть cd/dvd появляется "Ошибка хоста скрипта окна"
У меня есть программа, которая записывается на CD / DVD. Я пытаюсь изменить код так, чтобы он выбрасывал CD / DVD после записи. для первой попытки я использовал эту ссылку, чтобы написать простой пример, но я получил эту ошибку
и это мой код:
package javaapplication1;
import java.io.File;
import java.io.FileWriter;
public class Main {
private Main() { }
public static void open(String drive) {
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);
String vbs = "Set wmp = CreateObject(\"WMPlayer.OCX\") \n"
+ "Set cd = wmp.cdromCollection.getByDriveSpecifier(\""
+ drive + "\") \n"
+ "cd.Eject";
fw.write(vbs);
fw.close();
Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();
}
catch(Exception e){
e.printStackTrace();
}
}
public static void close(String drive) {
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
// to close a CD, we need eject two times!
String vbs = "Set wmp = CreateObject(\"WMPlayer.OCX\") \n"
+ "Set cd = wmp.cdromCollection.getByDriveSpecifier(\""
+ drive + "\") \n"
+ "cd.Eject \n "
+ "cd.Eject ";
fw.write(vbs);
fw.close();
Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();
}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, "Press OK to open CD", "Main",
javax.swing.JOptionPane.DEFAULT_OPTION);
Main.open("D:\\");
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, "Press OK to close CD", "Main",
javax.swing.JOptionPane.DEFAULT_OPTION);
Main.close("D:\\");
}
}
Почему там ошибка?
2 ответа
Неосторожная ошибка! Я забыл изменить диск в коде ссылки на диск, на котором находится мой DVD: диск 'F'!!
Я не знаю, но так как ваш код использует "\n"
и вы, кажется, находитесь в мире Windows, я думаю, вы должны использовать "\r\n"
вместо.