2016-04-21 50 views
1

我想从java运行时运行真空数据库。相同的语法,我跑在命令工具,它的工作原理,但是从Java运行它does not:Java运行时间vacuumdb

final String cmd = "vacuumdb, -d wsemp0408, -v, -z;"; 

    try { 
     System.out.println("ABC BACKUP START"); 
     java.lang.Runtime rt = java.lang.Runtime.getRuntime(); 
     java.lang.Process p = rt.exec(cmd); 
     System.out.println("ABC BACKUP END"); 
    } 

收到此错误:

java.io.IOException: Cannot run program "vacuumdb,": java.io.IOException: error=2, No such file or directory 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459) 
at java.lang.Runtime.exec(Runtime.java:593) 
at java.lang.Runtime.exec(Runtime.java:431) 
at java.lang.Runtime.exec(Runtime.java:328) 
at accelteam.sop.backup.DBBackup.start(DBBackup.java:35) 
at accelteam.sop.Sop.run(Sop.java:20) 
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory 
at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) 
at java.lang.ProcessImpl.start(ProcessImpl.java:65) 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452) 
... 5 more 

任何人都遇到过这个?

添加的完整路径仍然显示错误:

java.io.IOException: Cannot run program "/usr/lib/postgresql/9.3/bin/vacuumdb,": java.io.IOException: error=2, No such file or directory 

我创建了一个EXE罐子用root和chmod 777文件,希望它的权限问题,但仍然是相同的

+1

完全路径vacuumdb可执行文件 –

回答

0

加入的完整路径固定和删除,

final String cmd = "/usr/lib/postgresql/9.3/bin/vacuumdb -d wsemp0408 -v -z"; 

这会正确运行。