java - Runtime.exec 命令不起作用

标签 java wget runtime.exec

我有一个 java 应用程序,它使用 wget 从 Web 服务下载文件。当通过 java 执行命令时,它返回:“wget:不是 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 或命令提示符。

希望这会起作用。

关于java - Runtime.exec 命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16186978/

相关文章:

java - APP IOS 和 ANDROID 网站

自定义累加器的 java.lang.NullPointerException

python - 构建一个字符串并在终端 python 中运行它

Javaw 在启动外部应用程序时未终止

java - Hibernate Envers - 如何审核 @OneToMany 关系中的实体中的更改?

java - 带有 addXX 方法的 BeanUtils

linux - 如何使用wget下载具有最新时间戳的目录

apache - 如何从网络存档下载网站

java - 从 Java Process 运行交互式 Python GUI (Matplotlib)

java - Process.= Runtime.getRuntime().exec() 不适合我