Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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 - Fatal编程技术网

如何用Java程序关闭记事本中的文本文件

如何用Java程序关闭记事本中的文本文件,java,Java,我创建一个包含一些数据的文本文件,我只想关闭指定的文本文件。我在谷歌上搜索,找到了如下解决方案: Runtime.getRuntime().exec("taskkill /IM notepad.exe"); 但它会关闭所有记事本实例,但我只想关闭指定的文本文件。此代码用于打开sample1.txt文件: Runtime rt = Runtime.getRuntime(); String file = "D:\\sample1.txt"; Process p = rt.exec("notepad

我创建一个包含一些数据的文本文件,我只想关闭指定的文本文件。我在谷歌上搜索,找到了如下解决方案:

Runtime.getRuntime().exec("taskkill /IM notepad.exe");
但它会关闭所有记事本实例,但我只想关闭指定的文本文件。此代码用于打开sample1.txt文件:

Runtime rt = Runtime.getRuntime();
String file = "D:\\sample1.txt";
Process p = rt.exec("notepad " +file);
Runtime.getRuntime().exec("taskkill /IM notepad.exe");
此代码用于关闭txt文件:

Runtime.getRuntime().exec("taskkill /IM notepad.exe");
但在这里,如果我打开了另一个文本文件,而不是sample1.txt,那么所有文本文件都将关闭。我关心的是只关闭sample1.txt文件

我的完整代码:

import java.io.IOException; 

    public class fileCloseOp2 {    
           public static void main(String[] args) throws IOException, 
  InterruptedException {
              // TODO Auto-generated method stub
              Runtime rt = Runtime.getRuntime();
              String file = "D:\\sample1.txt";
              Process p = rt.exec("notepad " +file);
              Thread.sleep(5000);                  
              Runtime.getRuntime().exec("taskkill /IM notepad.exe");                 

       }    
}
在这里:

您在建立后丢弃的流程对象。。。为您提供对关联流程的完全控制。例如,它提供了一种方法

因此,这里真正的答案是:不要使用在internet上找到的一些API/库调用。相反:阅读相应的javadoc,理解为什么要使用一些构造,更重要的是:理解它能为您提供什么

换句话说:您创建了一个打开记事本的操作系统进程。您只需使用指向该操作系统进程的句柄就可以完全杀死该进程

这里:

您在建立后丢弃的流程对象。。。为您提供对关联流程的完全控制。例如,它提供了一种方法

因此,这里真正的答案是:不要使用在internet上找到的一些API/库调用。相反:阅读相应的javadoc,理解为什么要使用一些构造,更重要的是:理解它能为您提供什么


换句话说:您创建了一个打开记事本的操作系统进程。您只需使用指向该操作系统进程的句柄就可以完全杀死该进程

您可以对流程对象调用destroy方法。它将只终止rt.exec运行的进程。谢谢Dorian。它正在工作。您可以在进程对象上调用destroy方法。它将只终止rt.exec运行的进程。谢谢Dorian。它正在工作。嗨,如何找到相应的java文档?请通过步骤告诉我。@1。转向谷歌。2.键入javaprocess+enter。右键显示给我的第一个链接:。。。或者反过来说:知道指向javadoc入口点的链接,比如Java12。。。并浏览这些包。这是一项基本技能,培训是必不可少的。@george并记录在案:请不要忘记在某个时候接受答案-您好,如何找到相应的java文档?请通过步骤告诉我。@1。转向谷歌。2.键入javaprocess+enter。右键显示给我的第一个链接:。。。或者反过来说:知道指向javadoc入口点的链接,比如Java12。。。并浏览这些包。这是一项基本技能,培训是必不可少的。@george并记录在案:请不要忘记在某个时候接受答案-