簡體   English   中英

Runtime.exec命令無法正常工作

[英]Runtime.exec command not working

我有一個java應用程序,使用wget從Web服務下載文件。 當通過java執行命令時,它返回:“wget:not a http或ftp url:”當我直接執行命令時,它運行沒有問題。 這是我的代碼:

try {
        Debug.println("Starting copy of "+srcFile+" to "+destFile);
        String command = "wget -O " + destFile + " \""+ srcFile +"\"";
        Process p = Runtime.getRuntime().exec(command);
        int exitCode = p.waitFor();

        if(Debug.isDebugMode())
        {
            Debug.println(command);
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getErrorStream()));

            String s;
            while((s = stdInput.readLine()) != null)
            {
                Debug.println(s);
            }
        }
        Debug.println("Finished with code: " + String.valueOf(exitCode));
    } 
    catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return false;

這是輸出:

24/04/2013 10:11:05 Starting copy of stoppenmetroken.webcolors.local/service/track?track=3b1ac68a288345c183a08c714901a398&mac=089000A09090 to /opt/byato/data/song/3b1ac68a288345c183a08c714901a398
24/04/2013 10:11:05 wget -O /opt/byato/data/song/3b1ac68a288345c183a08c714901a398 "stoppenmetroken.webcolors.local/service/track?track=3b1ac68a288345c183a08c714901a398&mac=089000A09090"
24/04/2013 10:11:05 wget: not an http or ftp url: "http://stoppenmetroken.webcolors.local/service/track?track=3b1ac68a288345c183a08c714901a398&mac=089000A09090"
24/04/2013 10:11:05 Finished with code: 1

ps:我刪除了http://部分輸出,因為我沒有足夠的聲望點 - .-

我錯過了什么?

你能嘗試執行這樣的命令:

進程p = Runtime.getRuntime()。exec(“/ bin / bash -c”+ command); //對於linux

要么

進程p = Runtime.getRuntime()。exec(“cmd.exe / c”+ command); //對於Windows

有時我們需要顯式調用Linux shell或命令提示符。

希望這會奏效。

我懷疑這個:

String command = "wget -O " + destFile + " \""+ srcFile +"\"";

是問題。 在shell中運行時,將刪除URL周圍的引號。 但是,當您通過Java運行時,您沒有通過shell運行,並且您的URL以"http... (仔細查看錯誤消息) "http...開頭。

如果您不希望Runtime.exec() t解析並拆分您的參數,那么您可能會考慮采用單個參數的變體 更有效的解決方案仍然是使用HttpComponents下載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM