下面是代碼:在Java中執行linux終端命令,涉及寫入日誌文件,但沒有權限?
String cmd = "/usr/local/postgresql/bin/postgres -D /usr/local/postgresql/data >logfile 2>&1 &";
Process p = Runtime.getRuntime().exec(cmd);
它不工作。該命令應該啓動postgres服務器,但我檢查了服務器沒有啓動,這意味着命令沒有執行。但它的工作,如果命令是這樣的:/usr/local/postgresql/bin/postgres -D /usr/local/postgresql/data
只是啓動服務器,但不需要寫入日誌文件。
所以我猜這個命令中的字符可能是個問題。我試過這個solution。它仍然沒有工作。然後我意識到也許這是權限問題?我的意思是java文件沒有寫入日誌文件的權限?但我不知道如何解決這個問題。任何建議?提前致謝。