This question already has answers here:
Start or stop mysql database using java programming
                                
                                    (2个答案)
                                
                        
                3年前关闭。
            
        

我试图停止使用Runtime.getRuntime()。exec(“”)方法从Java应用程序启动的wscript。我使用wscript启动了mysql服务器。但是,当我关闭Java应用程序时,wscript没有关闭每当我每次重新启动应用程序时,wscript.exe就会占用80%的内存,这会使我的PC变慢。
所以我的问题是在使用结束后如何安全关闭wscript.exe。如果有人问这个问题,请指出正确的方向

 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);
        }
    }


java - 如何从Java停止wscript.exe停止mysql服务器?-LMLPHP
java - 如何从Java停止wscript.exe停止mysql服务器?-LMLPHP

已编辑

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();


  使用的解决方案来自以下重复的问题;
  
  @shashankaholic Answer to Start or stop mysql database using java programming
  
  
  
  开始

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

  
  停

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

09-10 03:17
查看更多