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。如果有人问这个问题,请指出正确的方向
![java - 如何从Java停止wscript.exe停止mysql服务器?-LMLPHP java - 如何从Java停止wscript.exe停止mysql服务器?-LMLPHP]()
![java - 如何从Java停止wscript.exe停止mysql服务器?-LMLPHP java - 如何从Java停止wscript.exe停止mysql服务器?-LMLPHP]()
已编辑
编辑2
mysql_start.vbs
停
(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);
}
}
已编辑
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");