如何从 java 停止 wscript.exe 以停止 mysql 服务器?

How to stop wscript.exe from java to stop a mysql server?

我正在尝试停止使用 Runtime.getRuntime().exec("") 从 java 应用程序启动的 wscript method.I 使用 mysql 服务器启动wscript.But 当我关闭我的 java 应用程序时,wscript 没有关闭,因此当我每次重新启动我的应用程序时,每次 80% 的内存都被 wscript.exe 填满,使我的电脑变慢。 所以我的问题是如何在使用后安全地关闭 wscript.exe over.If 这个问题是在有人问我之前问的,请指出正确的方向

 public void startMySQLServer() {
        try {
            Process process = Runtime.getRuntime().exec("wscript C:\\\\Users\\\\Shersha\\\\Documents\\\\NetBeansProjects\\\\Berries\\\\batch\\\\mysql_start.vbs");
            System.out.println("waiting to start mysql server");
            process.waitFor();
            System.out.println("mysql server started sucessfully");

        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (IOException ex) {
            Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

已编辑

public void stopMySQLServer() {
        try {
            Process process = Runtime.getRuntime().exec("wscript C:\\\\Users\\\\Shersha\\\\Documents\\\\NetBeansProjects\\\\Berries\\\\batch\\\\mysql_stop.vbs");
            System.out.println("waiting to stop mysql server");
            process.waitFor();
            process.destroy();
            System.out.println("process exit value" + process.exitValue());
            System.out.println("mysql server stopped sucessfully");

        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (IOException ex) {
            Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

已编辑 2 mysql_start.vbs

Set WshShell = WScript.CreateObject("WScript.Shell")
  If WScript.Arguments.length = 0 Then
  Set ObjShell = CreateObject("Shell.Application")
  ObjShell.ShellExecute "wscript.exe", """" & _
  WScript.ScriptFullName & """" &_
  " RunAsAdministrator", , "runas", 1
  Wscript.Quit
  End if
CreateObject("Wscript.Shell").Run "C:\Users\Shersha\Documents\NetBeansProjects\Berries\batch\mysql_start.bat",0,True

因为您有一个有效的 Process 实例,您应该能够调用 process.destroy();

Solution used came from duplicate question listed below;

@shashankaholic Answer to Start or stop mysql database using java programming


START

Process process = Runtime.getRuntime().exec("net START MySQL");

STOP

Process process = Runtime.getRuntime().exec("net STOP MySQL");