Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java代码退出批处理文件_Java_Windows - Fatal编程技术网

使用java代码退出批处理文件

使用java代码退出批处理文件,java,windows,Java,Windows,我有这样的示例代码 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author padmaja */ import java.io.*; class Test{ public static void main(String arg[]){ try{ String command = "cmd

我有这样的示例代码

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author padmaja
 */

import java.io.*;
class Test{
  public static void main(String arg[]){
    try{
      String command = "cmd /C start C:/excel.bat";
      Runtime rt = Runtime.getRuntime();
      Process pr = rt.exec(command);  
    }catch (IOException e) {
      e.printStackTrace();
    }
  }
}
我正在使用上述代码打开excel工作表

问题是,如果使用线程每隔15分钟打开一次excel工作表,则会显示多个excel工作表。我想从上述代码本身关闭批处理文件的运行


提前感谢

一个选项是使用taskkill命令()终止进程。当然,这只会终止该过程,因此您将无法执行任何清理/保存等操作。

一旦打开Excel工作表,最终用户将与其交互,对吗?你怎么知道可以关闭它?如果您只是为一些加载运行的宏启动Excel,则可以在该宏中退出

在我的项目中,我们遇到了同样的问题


您可以编写一个DLL,它可以根据需要打开和关闭已启动的进程。在C++中,你可以处理你所描述的过程。您可以获得一个进程id,从中可以识别正在运行的进程。据我所知,您只能终止进程,而不能通过要求用户关闭窗口来优雅地终止进程。

您应该在代码段中格式化代码。为此,请在每行的开头添加4个空格。此外,在代码段的上方和下方都有一个空行。您在这个Excel工作表中做什么?是否执行VBA宏?您是否等待任何用户交互?请提供更多细节(参见Hemal Pandya的回答)问题是,我发现这样的代码真的很奇怪,因为这是一个症状,表明烟囱应用程序/脚本使用混乱的方式粘在一起存在更深层次的问题。如果可能的话,最好解决这个问题,而不是像这样胡乱修改。不过,这可能是不可能的。我同意这是我的第一个想法!你知道什么时候该结束工作表了吗?VBA宏对其起作用吗?然后,该宏将关闭该文件。永远不要猜测一个过程需要多少时间。非常正确。但除非帕拉维澄清,否则我们永远不会知道:-)