Java 无法使用Tomcat作为服务在前台运行cmd
当我使用Java 无法使用Tomcat作为服务在前台运行cmd,java,batch-file,tomcat,cmd,foreground,Java,Batch File,Tomcat,Cmd,Foreground,当我使用statup.bat运行Tomcat并运行我的xxx.bat文件时,我可以看到xxx.bat文件正在运行,它正在调用testNg,我可以看到所有的测试用例正在运行 但是当我将Tomcat作为服务运行时,我的xxx.bat文件开始执行它的工作并开始执行测试用例,但它在后台运行 问题是我想看到测试用例在前台运行 我的代码是 String batPath = "D:\\Workspaces\\TestingWorkspace\\myproject\\runTestNg.bat"; Strin
statup.bat
运行Tomcat并运行我的xxx.bat
文件时,我可以看到xxx.bat
文件正在运行,它正在调用testNg
,我可以看到所有的测试用例正在运行
但是当我将Tomcat作为服务运行时,我的xxx.bat
文件开始执行它的工作并开始执行测试用例,但它在后台运行
问题是我想看到测试用例在前台运行
我的代码是
String batPath = "D:\\Workspaces\\TestingWorkspace\\myproject\\runTestNg.bat";
String pojectRoot = "D:\Workspaces\TestingWorkspace\myproject";
String path = "cmd /c start " + batPath + " " + projectRoot;
Process p = Runtime.getRuntime().exec(path);
p.waitFor();
您需要从进程中读取流。如果我没记错的话,一共有三条小溪。有错误流、输入流和输出流。你需要得到它们,阅读它们并打印出来
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
不要在cmd命令中使用wordstart,然后按照chilltouch关于读取流的建议操作。我的问题不是这个。我的批处理文件正在运行并按其应做的方式执行其工作,但它是在后台执行的。我看不到它。是的,它在工作,但是日志(又名流)没有被处理。因为您并没有在窗口中打开cmd,所以并没有显示“消息”的内容。所以,当您需要用start观看它们时,您需要实现这一点。您可以在tomcatfolder\logs\localhost***.log中看到日志文件,但这是手动的。