Почему при попытке открыть / закрыть 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" вместо.

Другие вопросы по тегам