繁体   English   中英

如何使 Java 在同一命令提示符窗口中打开批处理文件

[英]How to Make Java Open a Batch File in Same Command Prompt Window

我正在尝试制作一个基于控制台的 Java 应用程序,该应用程序启动一些批处理脚本来执行其他一些不相关的事情。 目前,我只想找到概念证明

我尝试使用以下代码:

Runtime.getRuntime().exec("cmd /c start pathtomybatch.bat"); 

在我将它转换为.jar文件并尝试执行它之前,它工作正常。 然后它在新的命令提示符窗口中打开批处理文件,我不希望它这样做。 我想在运行我的 Java 程序的同一窗口中打开批处理文件。我在TechNetSS64上阅读了有关start命令的信息,发现显然将更改start添加到start /b会在同一命令提示符下打开程序窗户。 但是,当我尝试运行它时:

Runtime.getRuntime().exec("cmd /c start /b pathtomybatch.bat"); 

NetBeans 对两行代码都显示BUILD SUCCESSFUL ,但是当我尝试第二行代码时,没有命令提示符窗口打开,我的批处理文件也没有启动。

我想知道如何让 Java 在同一个命令提示符窗口中打开该批处理文件,而无需停止 Java 应用程序或等待它完成。

另外,作为一个小小的额外请求,有人可以告诉我是否可以对.exe文件执行相同的操作吗?

我使用的是 Windows 7,但我希望此应用程序适用于使用 Vista 或更高版本的用户。

额外的窗口来自您启动的启动命令。 请参阅https://www.windows-commandline.com/cmd-start-command/

更好的模式是使用

Process p = Runtime.getRuntime().exec("cmd /c pathtomybatch.bat"); 

然后确保循环直到 p.exitValue() 不再抛出异常(这意味着进程已退出),并在循环时将所有可用字节从 p.getOutputStream() 和 p.getErrorStream() 复制到 System.out 和/或 System.err。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM