Java 在绝对路径上执行参数Runtime.getRuntime().exec(args)时出错

Java 在绝对路径上执行参数Runtime.getRuntime().exec(args)时出错,java,batch-file,runtime,runtime.exec,Java,Batch File,Runtime,Runtime.exec,我正在尝试执行以下命令: * “cmd/c:\stuff\dev\phantomjs\bin\phantomjs.exe downloadDocument.js " * 当我把它放在一些批处理Windows文件中时,它会工作。问题是,我正试图用java实现这一点,到目前为止运气不好,还尝试了不同的路径(可能是点问题)。 到目前为止运气不好。 我真的需要帮助! 我在进程的输出流中得到一个错误 “无法打开'downloadDocument.js'” 我唯一的猜测是,我需要在当前路径中才能执行代码 我

我正在尝试执行以下命令:

*

“cmd/c:\stuff\dev\phantomjs\bin\phantomjs.exe downloadDocument.js "

*

当我把它放在一些批处理Windows文件中时,它会工作。问题是,我正试图用java实现这一点,到目前为止运气不好,还尝试了不同的路径(可能是点问题)。 到目前为止运气不好。 我真的需要帮助! 我在进程的输出流中得到一个错误

“无法打开'downloadDocument.js'”

我唯一的猜测是,我需要在当前路径中才能执行代码

我错过了什么

代码如下:

public class UrlUtils {
    private static String SCRIPT_PATH = "C:\\stuff\\dev\\phantomjs\\bin\\phantomjs.exe";
    private static String SCRIPT_NAME = "downloadDocument.js";

    public static String execPhantom(String url) throws Exception {
        Process p;
        try{

            File f = new File(SCRIPT_PATH);

            String [] args = new String[5];
            args[0] = "cmd";
            args[1] = "/c";
            args[2] = f.getCanonicalPath().toString();
            args[3] = SCRIPT_NAME;
            args[4] = url;

            p = Runtime.getRuntime().exec(args);
           .......
           .......

您还可以尝试提供downloadDocument.js的完整路径,也许这有助于您还可以尝试使用.exec版本,该版本包含两个附加参数(环境和工作目录)。看看Dennis van Gils的文档,你说得对,我的EXE文件和我的JS脚本在同一个位置,但是,我在不同的位置运行我的java代码(取决于我的工作区),所以基本上,如果我运行EXE文件,它不会威胁到作为EXE位置的“当前位置”,而是威胁到作为父位置的它,(或者运行EXE的线程的位置,这是我的java工作区代码)。希望它有意义。谢谢!没问题。另外,如果您使用@DennisvanGils而不是我的名字,我可以在给我发消息时看到通知。