2012-08-17 40 views
0

我上執行下面的代碼獲取問題執行與rt.exec(MySQL的負載數據)命令:在Linux

Process pr = rt.exec("mysql -uroot -pcdac123 -e \"" 
       + "use rrrlfdev;load data local infile '" 
       + fpath 
       + "' into table t_adm_despatch fields terminated by ',' enclosed by '\\\"' lines terminated by '\\n' (dispatchno,dispatchdate,dispatchName, dispatchAddress, fileNo)" 
       + "\""); 

相同的運行在Windows上細。

+0

什麼問題..?如果u得到任何錯誤,那麼就把它也。 – 2012-08-17 10:51:00

+0

它顯示mysql的幫助文件....內部查詢未執行... – biztiger 2012-08-17 10:52:54

回答

0

Java需要分別瞭解命令和參數。你可以做兩件事情

1)你可以嘗試使用EXEC(字符串命令,字符串[]參數)提供cmd並seperately的ARGS

2)你可以附上mysql命令和每個參數成雙引號。

在你的情況下,錯誤是開始報價的錯位。有沒有像

沒有這樣的命令

的mysql -uroot -pcdac123 -e \」 .....

這是它顯示了幫助文件的原因。雙引號應該放在mysql命令後,像

的mysql \」 -uroot -pcdac123 -e .....

希望這將有助於

+0

同樣的事情在Windows上運行良好。該命令不是mysql -uroot -pcdac123 -e \「但是mysql -uroot -pcdac123 -e」使用rrrlfdev .. \作爲雙引號的轉義字符。我在控制檯打印命令,如果我直接將它放在linux終端上,它運行良好。我會嘗試分離參數,但我不知道它爲什麼在Windows上運行正常,但不在Linux上運行。 – biztiger 2012-08-17 11:40:21