【问题标题】:execute batch file remotely java远程执行批处理文件java
【发布时间】:2010-09-01 18:57:34
【问题描述】:

我想在服务器上远程执行一个 bat 文件 \\testserver\someFolderName\test.bat。 我正在使用流程构建器,并希望使用 procbuilder.directory(....), 但无法成功。

感谢任何帮助。谢谢

【问题讨论】:

  • 你有没有找到解决这个问题的方法?

标签: java processbuilder


【解决方案1】:

在过去,我使用PSExec 快速而肮脏地完成了它

只需从您的程序作为自己的进程启动它,并使用所需的参数来访问远程计算机上的批处理。

【讨论】:

    【解决方案2】:

    我认为您不能为 ProcessBuilder 执行 UNC 路径,但无论如何这并不重要。

    要运行 .bat 文件,您需要运行 windows 命令 shell 并让其执行 .bat 文件,并且命令 shell 不支持 UNC 路径...解决方法是运行您的命令,例如这个:

    cmd.exe /C "pushd \\testserver\someFolderName && test.bat && popd"
    

    本质上,您是在告诉 cmd 提示符将远程文件夹挂载为临时驱动器 (pushd \testserver\someFolderName),运行 test.bat,然后卸载临时驱动器 (popd)。

    【讨论】:

    • 是这样的代码: String[] command = { "CMD", "/C", "pushd \\\\testserver\\someFolderName && test.bat && popd" }; ProcessBuilder probuilder = new ProcessBuilder(command);
    • String[] command = { "cmd.exe", "/C", "pushd \\\\testserver\\someFolderName && test.bat && popd" }; ProcessBuilder probuilder = new ProcessBuilder(command);我试过了,但无法成功。
    • 你的问题不清楚(无论如何对我来说)。我以为您想在本地运行位于远程的 .bat 文件。安德鲁的回答会更相关。
    【解决方案3】:

    这是我们目前正在使用的工作代码:

    try {            
       ProcessBuilder launcher = new ProcessBuilder();
       Map<String, String> environment = launcher.environment();
       launcher.redirectErrorStream(true);
       launcher.directory(new File("\\\\<your remote computer name>\\TIERS\\DEV1\\RP\\VISUAL_BASIC\\"));
    
       environment.put("name", "var");
       launcher.command("your.exe");
       Process p = launcher.start(); // And launch a new process
    
    } catch (Exception e){
       e.printStackTrace();
    }
    

    【讨论】:

    • 系统找不到指定的文件是我的结果。在资源管理器中使用相同的路径和可执行文件名执行确实有效,因此路径和可执行文件名是正确的。
    【解决方案4】:

    它也适用于java,如下所示:

    Process p1 = Runtime.getRuntime().exec("cmd.exe /C pushd \\yourserver\yourfolderpath && yourexecutable.bat && popd");
    

    【讨论】:

    • 这通过 Java 为我工作。但我不得不转义 url。- \\\\yourserver\\yourfolderpath。谢谢!
    猜你喜欢
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多