`
小网客
  • 浏览: 1243958 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中System.exit(status)和Runtime.getRuntime().halt(status)区别

    博客分类:
  • Java
 
阅读更多

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);
}

结论:

所有的线程都没有执行

0
0
分享到:
评论

相关推荐

    java执行可执行文件,Runtime.exec、ProcessBuilder、commons-exec

    System.err.println("InterruptedException command: " + exitStatus); } if (exitStatus != 0) { System.err.println("Error executing command: " + exitStatus); } return (exitStatus == 0); } } ``` ...

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

    java.lang.Runtime 类是 Java 语言中一个非常重要的类,它提供了访问当前 Java 应用程序的 Runtime 环境的能力。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。 概述: ...

    09 Runtime

    `Shutdown.exit(int status)`是`Runtime.exit(int status)`方法调用的实际执行者。其主要功能包括: 1. **状态更新**:根据传入的`status`值来更新`runFinalizersOnExit`标志。如果`status`不为0,则将此标志设置为...

    java.lang.Runtime.exec&#40;&#41; Payload知识点详解

    在 Java 语言中,可以使用 Runtime.getRuntime().exec() 方法执行命令,该方法可以执行操作系统命令,并返回结果。例如,可以使用以下代码执行命令: `String cmd = "ls -l"; Process process = Runtime.getRuntime...

    详解Java8与Runtime.getRuntime().availableProcessors()

    在Java 8中,`Runtime.getRuntime().availableProcessors()`是一个重要的方法,用于获取当前系统可用的处理器核心数量。这个信息对于优化多线程程序,尤其是使用并行处理的场景至关重要,例如Java 8引入的并行流...

    基于java.lang.Runtime封装的用于简化java调用命令行的工具.zip

    Java语言在执行外部程序或与操作系统交互时,通常会用到`java.lang.Runtime`类。这个类提供了运行时环境的接口,允许Java程序执行系统命令。然而,直接使用`Runtime`类进行命令行操作可能会比较繁琐,需要处理进程的...

    使用runtime实现linux命令行或shell脚本多次调用

    在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。

    Java使用Runtime.exec()给Windows命令提示符做了个外壳,真的很山寨!

    在Java编程中,`Runtime.exec()`方法是一个非常实用的功能,它允许我们执行操作系统级别的命令。这篇博客"Java使用Runtime.exec()给Windows命令提示符做了个外壳,真的很山寨!"探讨了如何利用`Runtime.exec()`来...

    在java程序中实现wav文件转MP3

    在Java中调用这个外部工具,我们可以使用`Runtime.getRuntime().exec()`方法。 以下是`Wav2mp3.java`文件的主要代码逻辑: ```java import java.io.File; import java.io.FileInputStream; import java.io....

    environments was not found on the java.library.path: E:\\Program Files (x86)\\Java

    当Java程序试图通过`System.loadLibrary()`或`Runtime.getRuntime().loadLibrary()`方法加载非Java代码的本地库时,JVM会沿着这个路径寻找对应的库文件。 错误描述中提到的"NULL"可能是博主在遇到问题时没有提供...

    android 串口驱动

    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_bat.rar_DEMO"是一个演示了如何在Java中调用Windows批处理文件的示例,它通过`Runtime.getRuntime().exec()`或`ProcessBuilder`启动批处理,同时处理了输出和错误流,提供了一种方便的方式来执行操作...

    java获取cpu、内存信息

    在Java编程中,获取CPU和内存信息是系统监控和性能分析的重要部分。下面将详细介绍如何使用Java来实现这一目标。 首先,我们从CPU信息开始。Java提供了`java.lang.management`包,该包中的`OperatingSystemMXBean`...

    Runtime 执行bat

    在Java编程语言中,`Runtime`类是每个Java应用程序都有的一个实例,它提供了与运行时环境交互的方法。当我们需要在Java程序中执行系统命令,比如运行一个批处理脚本(.bat文件)时,`Runtime`类或者其扩展类`...

    Java使用默认浏览器打开指定URL的方法(二种方法).rar

    在Java编程中,有时我们需要实现一个功能,即通过程序控制打开用户的默认浏览器并访问特定的URL。本资源“Java使用默认浏览器打开指定URL的方法(二种方法).rar”提供了两种实现这一目标的方法。下面将详细阐述这两...

    Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法.pdf

    方法一:使用 Java 的 Runtime 类和 OperatingSystemMXBean Java 的 Runtime 类提供了获取系统内存信息的方法,包括 freeMemory()、totalMemory() 和 maxMemory()。OperatingSystemMXBean 是 Java 的一个管理接口,...

    Java_CMD.rar_java cmd

    总之,Java通过`Runtime`和`ProcessBuilder`类提供了强大的功能,让我们能够方便地在Java程序中调用CMD命令,实现与操作系统的交互。同时,Swing库提供了丰富的组件和API,用于创建用户界面,处理用户输入,为我们的...

    FFmpeg(liunx中amr转MP3工具)

    java.lang.Runtime rt = Runtime.getRuntime(); //命令 String command = fileUrl+"ffmpeg -i " + localPath + " " + targetFilePath; //执行amr转MP3命令 Process proc = rt.exec(command); InputStream ...

    【IDEA】windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案

    windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...

Global site tag (gtag.js) - Google Analytics