1

我正在使用 wifly 的 linux-server 工作。

当java被训练执行命令时:

String command = "mysqldump -h "+ hostDB +" -u "+ dbUsername +" "+ dbPassword +" "+ nameDB +" -r \""+ path + backUpFile+"\"";
        Process process = Runtime.getRuntime().exec(command);

它回来了mysqldump: Can't create/write to file '"/usr/share/wildfly/wildfly-9.0.0.Final/standalone/data/dbBackup/20160301_151254.sql"' (Errcode: 2)

但是当我在 linux-server shell 中执行该行时工作正常。

mysqldump -h xx.xx.xx.xx -u username"-pxxx" database -r "/usr/share/wildfly/wildfly-9.0.0.Final/standalone/data/dbBackup/20160301_151254.sql"

主机在不同的机器上。

相同的代码在我的 Windows 本地机器上运行。

4

1 回答 1

1

我找到了解决方案:

在 linux 服务器中的工作方式与 windows 不同,

我们需要使用

//for linux server          
String[] cmdarray = {"/bin/sh","-c",command};
process = Runtime.getRuntime().exec(cmdarray);
于 2016-03-24T15:50:24.623 回答