2016-03-02 71 views
0

我正在使用wilfly在linux服务器上工作。mysqldump(Errcode:2)尝试在linux(服务器)中使用wildfly做java备份

当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服务器的外壳程序执行线路工作正常。

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中工作。

+0

当你运行shell命令您使用的是相同的用户一个运行java进程? – gfelisberto

+0

我如何检查用户使用的是什么? – gogoru

+0

ps aux - 将显示机器和用户上运行的所有进程。你将不得不在那里找到 – gfelisberto

回答

0

我找到了解决办法:

在Linux服务器的工作原理不同的是窗户,

我们需要使用

//for linux server   
String[] cmdarray = {"/bin/sh","-c",command}; 
process = Runtime.getRuntime().exec(cmdarray);