Java Runtime Class



Introduction

The Java Runtime class allows the application to interface with the environment in which the application is running.

Class Declaration

Following is the declaration for java.lang.Runtime class −

public class Runtime
   extends Object

Class methods

Sr.No. Method & Description
1 void addShutdownHook(Thread hook)

This method registers a new virtual-machine shutdown hook.

2 int availableProcessors()

This method returns the number of processors available to the Java virtual machine.

3 Process exec(String command)

This method executes the specified string command in a separate process.

4 Process exec(String[] cmdarray)

This method executes the specified command and arguments in a separate process.

5 Process exec(String[] cmdarray, String[] envp)

This method executes the specified command and arguments in a separate process with the specified environment.

6 Process exec(String[] cmdarray, String[] envp, File dir)

This method executes the specified command and arguments in a separate process with the specified environment and working directory.

7 Process exec(String command, String[] envp)

This method executes the specified string command in a separate process with the specified environment.

8 Process exec(String command, String[] envp, File dir)

This method executes the specified string command in a separate process with the specified environment and working directory.

9 void exit(int status)

This method terminates the currently running Java virtual machine by initiating its shutdown sequence.

10 long freeMemory()

This method returns the amount of free memory in the Java Virtual Machine.

11 void gc()

This method runs the garbage collector.

12 static Runtime getRuntime()

This method returns the runtime object associated with the current Java application.

13 void halt(int status)

This method forcibly terminates the currently running Java virtual machine.

14 void load(String filename)

This method loads the specified filename as a dynamic library.

15 void loadLibrary(String libname)

This method loads the dynamic library with the specified library name.

16 long maxMemory()

This method returns the maximum amount of memory that the Java virtual machine will attempt to use.

17 boolean removeShutdownHook(Thread hook)

This method de-registers a previously-registered virtual-machine shutdown hook.

18 void runFinalization()

This method runs the finalization methods of any objects pending finalization.

19 long totalMemory()

This method returns the total amount of memory in the Java virtual machine.

20 void traceInstructions(boolean on)

This method enables/disables tracing of instructions.

21 void traceMethodCalls(boolean on)

This method enables/disables tracing of method calls.

Methods inherited

This class inherits methods from the following classes −

  • java.lang.Object

Example: Adding Shutdown Hook to a Thread Object

The following example shows the usage of Java Runtime addShutdownHook() method. In this program, we've created one static inner class Message which is extending Thread. In main method, we've registered a shutdown hook with a new Message object using addShutdownHook() method. Then we kept system to sleep for 2 seconds and then printed a closing message. As shutdown hook is registered with Message object, its run method is called when program exits.

package com.tutorialspoint;

public class RuntimeDemo {

   // a class that extends thread that is to be called when program is exiting
   static class Message extends Thread {

      public void run() {
         System.out.println("Bye.");
      }
   }

   public static void main(String[] args) {
      try {

         // register Message as shutdown hook
         Runtime.getRuntime().addShutdownHook(new Message());

         // print the state of the program
         System.out.println("Program is starting...");

         // cause thread to sleep for 3 seconds
         System.out.println("Waiting for 3 seconds...");
         Thread.sleep(3000);

         // print that the program is closing 
         System.out.println("Program is closing...");
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

Let us compile and run the above program, this will produce the following result −

Program is starting...
Waiting for 3 seconds...
Program is closing...
Bye.
Advertisements