如何在不同目录中运行bat文件

Posted

技术标签:

【中文标题】如何在不同目录中运行bat文件【英文标题】:How to run bat file in different directory 【发布时间】:2021-08-26 11:07:58 【问题描述】:

我有一个 bat 文件,它运行一个名为 Systemm.java 的 java 程序,位于一个名为 tp3 的包中

我的文件组织如下

.
├── src
    ├── tp3
    │   ├── Systemm.java
    │   ├── Communication.java
    │   └── exec_server.bat
    └── teste.bat

所以,我的主要问题是,我使用 teste.bat 来运行我的类 Systemm.java。而且这只蝙蝠很好用。

我还想做的是在 java 中调用 exec_server.bat。

依次:

teste.bat 运行 Systemm.java Systemm.java 有一个 Communication.java 类的实例 此实例运行应运行 exec_server.bat 的方法

Communication executeServer() method

public void executeServer() 
        try 
            // Path 
            Process p = Runtime.getRuntime().exec("cmd /c start \"\" tp3\exec_server.bat");
            p.waitFor();
            System.out.println("I finished running your server");
         catch (IOException | InterruptedException e) e.printStackTrace();
    

但是,当我运行我的程序时,此方法会在 cmd 上显示此消息

我几乎是探索 cmd 和 bat 文件的新手,所以我真的很困惑我做错了什么。

非常感谢您提前提供的任何帮助!

P.S:我在 src 目录上调用 cmd,exec_server.bat 只回显消息“您好!”在cmd上

【问题讨论】:

【参考方案1】:

请提供完整路径尝试:

  Process p = null;
    try 
        p = Runtime.getRuntime().exec("cmd /c start D:\\practice\\P1\\samp.bat ");
     catch (IOException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

【讨论】:

以上是关于如何在不同目录中运行bat文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有不同扩展名的文件作为BAT文件运行[重复]

打开.bat文件脚本后如何保持cmd运行

如何使用 BAT 文件更改目录?

如何执行gradlew.bat文件

.bat如何才能后台运行

bat运行出错,提升找不到文件,或者F=文件,D=目录?