System.exit(status);
Runtime.getRuntime().halt(status)
这两个都表示系统退出,那么他们有什么区别呢?
针对System.exit(status)解释如下:
Terminates the currently running Java Virtual Machine. The argument serves as a status code; by convention, a nonzero status code indicates abnormal termination
针对Runtime.getRuntime().halt(status)解释如下:
Forcibly terminates the currently running Java virtual machine. This method never returns normally.
具体的代码测试如下:
用户自定义线程:
class UserThread implements Runnable { @Override public void run() { System.out.println("***************UserThread start********"); try { Thread.sleep(1 * 1000l); System.out.println("***************UserThread end********"); } catch (InterruptedException e) { e.printStackTrace(); } } }
针对System.exit(status)测试代码:
public static void main(String[] args) throws Throwable { for (int i = 0; i < 10; i++) { Thread t = new Thread(new UserThread()); Runtime.getRuntime().addShutdownHook(t); } System.exit(1); }
结果:
所有的线程都执行完成之后才会退出
针对Runtime.getRuntime().halt(status)测试如下:
public static void main(String[] args) throws Throwable { for (int i = 0; i < 10; i++) { Thread t = new Thread(new UserThread()); Runtime.getRuntime().addShutdownHook(t); } Runtime.getRuntime().halt(1); }
结论:
所有的线程都没有执行
相关推荐
System.err.println("InterruptedException command: " + exitStatus); } if (exitStatus != 0) { System.err.println("Error executing command: " + exitStatus); } return (exitStatus == 0); } } ``` ...
java.lang.Runtime 类是 Java 语言中一个非常重要的类,它提供了访问当前 Java 应用程序的 Runtime 环境的能力。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。 概述: ...
`Shutdown.exit(int status)`是`Runtime.exit(int status)`方法调用的实际执行者。其主要功能包括: 1. **状态更新**:根据传入的`status`值来更新`runFinalizersOnExit`标志。如果`status`不为0,则将此标志设置为...
在 Java 语言中,可以使用 Runtime.getRuntime().exec() 方法执行命令,该方法可以执行操作系统命令,并返回结果。例如,可以使用以下代码执行命令: `String cmd = "ls -l"; Process process = Runtime.getRuntime...
在Java 8中,`Runtime.getRuntime().availableProcessors()`是一个重要的方法,用于获取当前系统可用的处理器核心数量。这个信息对于优化多线程程序,尤其是使用并行处理的场景至关重要,例如Java 8引入的并行流...
Java语言在执行外部程序或与操作系统交互时,通常会用到`java.lang.Runtime`类。这个类提供了运行时环境的接口,允许Java程序执行系统命令。然而,直接使用`Runtime`类进行命令行操作可能会比较繁琐,需要处理进程的...
在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。
在Java编程中,`Runtime.exec()`方法是一个非常实用的功能,它允许我们执行操作系统级别的命令。这篇博客"Java使用Runtime.exec()给Windows命令提示符做了个外壳,真的很山寨!"探讨了如何利用`Runtime.exec()`来...
在Java中调用这个外部工具,我们可以使用`Runtime.getRuntime().exec()`方法。 以下是`Wav2mp3.java`文件的主要代码逻辑: ```java import java.io.File; import java.io.FileInputStream; import java.io....
当Java程序试图通过`System.loadLibrary()`或`Runtime.getRuntime().loadLibrary()`方法加载非Java代码的本地库时,JVM会沿着这个路径寻找对应的库文件。 错误描述中提到的"NULL"可能是博主在遇到问题时没有提供...
su = Runtime.getRuntime().exec("/system/bin/su"); /*String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";*/ String cmd = "chmod 777 /dev/s3c_serial0" + "\n" + ...
总结,"java_bat.rar_DEMO"是一个演示了如何在Java中调用Windows批处理文件的示例,它通过`Runtime.getRuntime().exec()`或`ProcessBuilder`启动批处理,同时处理了输出和错误流,提供了一种方便的方式来执行操作...
在Java编程中,获取CPU和内存信息是系统监控和性能分析的重要部分。下面将详细介绍如何使用Java来实现这一目标。 首先,我们从CPU信息开始。Java提供了`java.lang.management`包,该包中的`OperatingSystemMXBean`...
在Java编程语言中,`Runtime`类是每个Java应用程序都有的一个实例,它提供了与运行时环境交互的方法。当我们需要在Java程序中执行系统命令,比如运行一个批处理脚本(.bat文件)时,`Runtime`类或者其扩展类`...
在Java编程中,有时我们需要实现一个功能,即通过程序控制打开用户的默认浏览器并访问特定的URL。本资源“Java使用默认浏览器打开指定URL的方法(二种方法).rar”提供了两种实现这一目标的方法。下面将详细阐述这两...
方法一:使用 Java 的 Runtime 类和 OperatingSystemMXBean Java 的 Runtime 类提供了获取系统内存信息的方法,包括 freeMemory()、totalMemory() 和 maxMemory()。OperatingSystemMXBean 是 Java 的一个管理接口,...
总之,Java通过`Runtime`和`ProcessBuilder`类提供了强大的功能,让我们能够方便地在Java程序中调用CMD命令,实现与操作系统的交互。同时,Swing库提供了丰富的组件和API,用于创建用户界面,处理用户输入,为我们的...
java.lang.Runtime rt = Runtime.getRuntime(); //命令 String command = fileUrl+"ffmpeg -i " + localPath + " " + targetFilePath; //执行amr转MP3命令 Process proc = rt.exec(command); InputStream ...
windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...