gpt4 book ai didi

java - Runtime.getRuntime().exec(),隐藏控制台屏幕

转载 作者:搜寻专家 更新时间:2023-10-31 19:51:11 26 4
gpt4 key购买 nike

我正在使用 Java 代码执行一个批处理文件。代码如下:

Process proc = null;

proc = Runtime.getRuntime().exec("cmd /c start somebat.bat");

这样,正常的命令提示符屏幕就会打开。现在我想抑制/隐藏命令提示符窗口(黑色的)。我在某个地方发现,如果我从命令中删除 start 属性,它不会出现,但是当从命令中删除它时,命令不会执行,也不会显示任何异常。

任何人都可以告诉我如何抑制这个窗口吗?

最佳答案

你试过“开始”的B选项吗?

proc = Runtime.getRuntime().exec("cmd /c start /B somebat.bat");

编辑:
好的,Anish,你的代码没有被执行,这很有趣。
我设置了一个单元测试:

Process proc = null;
try
{
proc = Runtime.getRuntime().exec("cmd /c start /B D:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("cmd /c call D:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("D:\\temp\\_test\\somebat.bat");
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

我的 somebat.bat 文件如下所示:

rem somebat.bat:
d:
cd D:\temp\_test
copy somebat.bat somebat2.bat

上面 try-block 中的所有三个版本都适用于我的场景。 Somebat.bat 被复制到 somebat2.bat 而没有弹出命令窗口(如果我使用你的电话会发生什么,如你的问题所示)。

编辑 2: 下一轮 ;-)
Anish,你能告诉我们你的 somebat.bat 和你的 ant 文件是什么样子的吗?
因为下面的所有三个调用都适用于我的场景:

测试代码:

Process proc = null;
proc = Runtime.getRuntime().exec("cmd /c start /B c:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("cmd /c call c:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("c:\\temp\\_test\\somebat.bat");

somebat.bat:

cd\temp\_test  
ant mycopy

构建.xml:

<?xml version="1.0"?>
<project name="testproj" default="mycopy" basedir=".">
<target name="mycopy">
<copy file="myfile.txt" tofile="mycopy.txt" />
</target>
</project>

myfile.txt: 任意文本文件

关于java - Runtime.getRuntime().exec(),隐藏控制台屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com