java - Bat文件在由java执行时不按预期执行

  显示原文与译文双语对照的内容

我已经写了一个bat文件来安装 mysql 。 当通过双击执行时,它运行得很好,但是当它由java程序执行时,它会。 任何建议?

这是我的蝙蝠 file:


set cur=%cd%
set pro=%PROGRAMFILES(x86)%
pause
if exist"%pro%" goto yes86
set pro=%PROGRAMFILES%

:yes86
if exist"%pro%MySQLMySQL Server 5.5binmysql.exe" goto yesmysql

msiexec/i"mysql-5.5.13.msi"/passive INSTALLDIR="%pro%MySQLMySQL Server 5.5"

cd/d %pro%MySQLMySQL Server 5.5bin

MySQLInstanceConfig.exe -i -q"-lC:mysql_install_log.txt""-nMySQL Server 5.5""- p%pro%MySQLMySQL Server 5.5" -v5.5.13"-t%pro%MySQLMySQL Server 5.5my-template.ini""-c%pro%MySQLMySQL Server 5.5my.ini" ServerType=DEVELOPMENT DatabaseType=MIXED ConnectionUsage=OLTP Port=3306 ServiceName=Mysql Charset=utf8 RootPassword=abc
:yesmysql

这是我的Java代码:


Runtime.getRuntime().exec("cmd/c start MySQL.bat");

时间: 作者:

假设你的bat文件在Java之外工作,只需更改


Runtime.getRuntime().exec("cmd/c start MySQL.bat");


Runtime.getRuntime().exec("MySQL.bat");

作者:

我建议试试这个:


List cmdAndArgs = Arrays.asList({"cmd","/c","MYSQL.bat"});
File dir = new File("C:/Program Files/MySQL/MySQL Server 5.5/bin/bat");

ProcessBuilder pb = new ProcessBuilder(cmdAndArgs);
pb.directory(new File(dir));
Process p = pb.start();

...