`
redsky008
  • 浏览: 351749 次
  • 性别: Icon_minigender_1
  • 来自: 成都正在项目
社区版块
存档分类
最新评论

强制关闭Runtime.getRuntime()调用的进程

 
阅读更多
Process process = Runtime.getRuntime().exec(cmdstr);
将process提取出来作为公共变量,在外部线程强制关闭:
外部调用:process.destroy();

---------------------------------------------------------
补充:这里忽略了一点,一般关闭不了,是因为使用了while循环读取输入流信息写法上有讲究:应该写成:
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String str = reader.readLine();
while(null!=str){
    str = reader.readLine();
    if(null==str){
      process.destroy();
      System.exit(0);
    }
}

而不应该将while写成这种 while(null!=(str=reader.readLine()))
解释原因,因为发现关闭主程序时,后边这种写法却关闭不了,仍然在接收信息,而接收的信息中恰好发现str==null值(调用Ping命令时,其他命令未考证),正好就可以判断。
分享到:
评论

相关推荐

    java调用windows命令

    如果遇到无法删除的问题,可以尝试使用`Runtime.exec()`调用`del`命令强制删除文件。 在实际编程中,处理这些细节能够确保Java程序在Windows环境中正确地调用命令行操作。同时,为了提高代码的可维护性和可读性,...

    java系统命令调用

    本文将详细介绍如何使用Java Runtime类中的`getRuntime().exec()`方法来调用系统命令,并提供一些实际应用场景的例子。 ### Java Runtime.getRuntime().exec() `java.lang.Runtime`类提供了运行时系统的表示形式,...

    java 结束word进程

    `Runtime.getRuntime().exec()`方法可以用来执行系统命令。例如,我们可以使用Windows的`taskkill`命令来结束Word进程。这个命令通常需要进程ID(PID)作为参数。在Java中获取PID并传递给`taskkill`命令,代码可能...

    JAVA如何调用WINDOWS命令行.doc

    在这种情况下,作者选择使用Windows的`DEL`命令来强制删除文件,通过`Runtime.getRuntime().exec("cmd /c del f:\\aaa.doc")`执行删除操作。需要注意的是,直接使用`exec("del f:\\aaa.doc")`是不正确的,因为`del`...

    10常用类2.doc

    `Runtime`实例允许程序执行一些低级的系统相关操作,如执行外部进程、管理内存或者强制垃圾回收。每个Java虚拟机(JVM)只有一个`Runtime`实例,可以通过`Runtime.getRuntime()`获取。 `Runtime`类提供了多种方法,...

    深入研究java.lang.Runtime类.doc

    一般不能实例化一个 Runtime 对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前 Runtime 运行时对象的引用。 一旦得到了一个当前的 Runtime 对象的引用,就可以调用 Runtime ...

    Java调用相应cmd命令的实例

    此外,`Process`对象还提供了其他有用的方法,如`destroy()`用于强制终止进程,`exitValue()`用于获取进程的退出状态码等。 通过这些基础知识,我们可以灵活地在Java程序中调用CMD命令,执行系统级别的操作。这在...

    java结束进程的实例代码

    在Java编程语言中,结束...综上所述,Java结束进程通常涉及调用操作系统级别的命令,这需要对操作系统和Java的`Runtime.exec()`方法有深入理解。在实际开发中,应谨慎使用这类方法,以避免不必要的安全风险和副作用。

    根据程序名字关闭系统中的程序

    在Java中,可以调用`Runtime.getRuntime().exec("taskkill /IM <process_name>")`(Windows)或`Runtime.getRuntime().exec("pkill -SIGTERM <process_name>")`(Unix/Linux)。 4. 自动化脚本:编写批处理脚本或...

    进程管理.zip

    2. `Runtime.getRuntime().exec("ps")`命令执行Linux的ps命令,解析输出结果以获取进程信息。 3. `adb shell`命令行工具也可以远程获取设备的进程信息。 四、杀死进程 Android系统会根据需要自动管理进程,但开发者...

    JAVA执行DOS命令分析

    在这种情况下,可以通过调用`Runtime.getRuntime().exec()`来执行DOS命令`del`来强制删除文件。要注意的是,直接使用`exec("del f:\\aaa.doc")`可能不会成功,因为DOS命令需要在命令解释器中运行,所以正确做法应该...

    Process启动进程.rarProcess启动进程.rarProcess启动进程.rar

    3. **编程方式启动**:开发者可以通过编程语言调用系统API来启动进程,例如在C#中使用`System.Diagnostics.Process.Start()`方法,在Java中使用`Runtime.getRuntime().exec()`。 三、进程生命周期 进程经历以下几个...

    结束已知应用程序名的进程Demo

    在Java中,可以使用`Runtime.exec()`方法调用操作系统命令来结束进程: ```java public static void killProcess(String processName) { try { Runtime.getRuntime().exec("taskkill /IM " + processName + " /F")...

    java关机代码

    在这个例子中,通过调用`Runtime.getRuntime().exec()`来执行系统级别的关机命令。 ```java public void exec(String kind) { try { Runtime.getRuntime().exec("cmd/c start call shutdown -" + kind + " -f -t ...

    Runtime 源码分析

    `Runtime`类是单例的,意味着每个Java应用都有一个与之关联的`Runtime`实例,可以通过`Runtime.getRuntime()`获取。 `Runtime`类的主要功能包括: 1. **进程管理**: - `exec(String command)`: 这个方法用于启动...

    Java Runtime类详解_动力节点Java学院整理

    Runtime类的实例是全局的,每个Java应用程序都只有一个Runtime实例,通过`Runtime.getRuntime()`静态方法可以获取到这个实例。 一、Runtime类的内存管理 1. `totalMemory()`: 这个方法返回Java虚拟机当前分配的总...

    服务器维护整理文档

    - **关闭**: 使用命令`sudo service tomcat stop`或找到对应的进程ID并通过`kill -9 <PID>`来关闭服务器。 - **重启**: 在确认WAR文件已经正确上传后,使用`sudo service tomcat start`命令重启服务器。 - **测试...

    自己写的JAVA锁屏源码

    2. 使用`java.lang.Runtime.getRuntime().exec()`方法执行系统命令,例如关闭任务管理器,防止用户通过它结束锁屏进程。 四、线程与同步 1. 在锁屏程序中,通常需要一个后台线程持续监控用户输入并做出反应,而...

    kill命令在Java应用中使用的注意事项小结

    例如,在上面的代码中,当使用`Runtime.getRuntime().addShutdownHook()`方法注册了一个新的线程,当接收到系统关闭信号时,这个钩子函数会被调用,从而允许执行一些清理工作,如关闭数据库连接、资源释放等。...

    通过JDK源码分析关闭钩子详解

    首先,当用户尝试关闭程序,可能由于各种原因导致正常的关闭流程无法执行,例如用户直接通过操作系统命令强制退出。为了应对这种情况,Java提供了一个优雅的解决方案——Shutdown Hook。Java虚拟机(JVM)在接收到...

Global site tag (gtag.js) - Google Analytics