1
我們試圖通過將pg_dump輸出導入psql來將數據庫轉儲導入到本地數據庫。當我們在命令行中執行命令它工作正常,但它失敗的Javapg_dump ProcessBuilder中的參數太多
這是怎麼樣子的ProcessBuilder
內:
ProcessBuilder processBuilder = new ProcessBuilder("pg_dump", "-h" + hostRemote,
"-p" + portRemote, "-U" + usernameRemote, "-a", dbNameRemote, "|",
"psql", "-h" + hostLocal, "-p" + portLocal, "-U" + usernameLocal, dbNameLocal);
這就是我們得到的錯誤:pg_dump的:太多的命令行參數(第一個是|)。
有沒有我們沒有看到的一些特殊的捕獲?任何幫助,將不勝感激。
編輯:整理了單獨標記:
ProcessBuilder processBuilder = new ProcessBuilder("pg_dump", "-h", hostRemote,
"-p", Integer.toString(portRemote), "-U", usernameRemote, "-a", dbNameRemote, "|",
"psql", "-h", hostLocal, "-p", Integer.toString(portLocal),
"-U", usernameLocal, dbNameLocal);
您需要構建數組或列表,並將每個標記作爲列表或數組中的自己的項目。 –
例如,您將字符串與空白連接在一起並將其作爲標記進行提供 - 不要這樣做 - 而是將它們分隔爲字符串標記中沒有空白的單獨標記。所以不是''-h「+ hostRemote,'而是:''-h」,hostRemote,' –
另外,你是否正確捕獲流? –