Clase Java.lang.Runtime en Java

En Java, la clase Runtime se usa para interactuar con cada aplicación Java que tiene una sola instancia de clase Runtime que permite que la aplicación interactúe con el entorno en el que se ejecuta la aplicación. El tiempo de ejecución actual se puede obtener del método getRuntime().

Métodos de la clase Java Runtime

Método  Acción realizada
addShutdownHook(Gancho de rosca) Registra un nuevo subproceso de enlace de apagado de máquina virtual .
procesadoresdisponibles() Devuelve el número de procesadores disponibles para la JVM (máquina virtual Java)
exec (comando de string) Ejecuta el comando dado en un proceso separado
exec(String[] cmd) Ejecuta el comando y los argumentos especificados en un proceso separado.
exec (comando de string, string [] envp, directorio de archivo) Ejecuta el comando de string especificado en un proceso separado con el entorno y el directorio de trabajo especificados. 
exec (comando de string, string [] envp) Ejecuta el comando de string especificado en un proceso separado con el entorno especificado.
exec(String[] cmdarray, String[] envp, Archivo dir)  Ejecuta el comando y los argumentos especificados en un proceso separado con el entorno y el directorio de trabajo especificados.
exec(String[] cmdarray, String[] envp) Ejecuta el comando y los argumentos especificados en un proceso separado con el entorno especificado. 
salida (estado int) Termina la máquina virtual Java actualmente en ejecución iniciando su secuencia de apagado.
memoria libre() Devuelve la cantidad de memoria libre en la JVM (Java Virtual Machine)
gc() Ejecuta el recolector de basura. Llamar a este método sugiere que la máquina virtual Java expande el esfuerzo hacia el reciclaje de objetos no utilizados para que la memoria que ocupan actualmente esté disponible para una rápida reutilización.
getRuntime() Devuelve la instancia o el objeto Runtime asociado con la aplicación Java actual
detener (estado int) Finaliza a la fuerza la máquina virtual Java actualmente en ejecución. Este método nunca regresa normalmente. Este método debe usarse con extrema precaución.
cargar (string de nombre de archivo) Carga el nombre de archivo especificado como una biblioteca dinámica. El argumento del nombre de archivo debe ser un nombre de ruta completo.
loadLibrary(String libname) Carga la biblioteca dinámica con el nombre de biblioteca especificado. Un archivo que contiene código se carga desde el sistema local desde un lugar donde los archivos de biblioteca se obtienen convencionalmente.
maxMemory() Devuelve la cantidad máxima de memoria que la máquina virtual Java intentará usar. Si no hay un límite inherente, se devolverá el valor Long.MAX_VALUE
removeShutdownHook(Gancho de rosca) Anula el registro de un enlace de apagado de máquina virtual registrado anteriormente.
ejecutarFinalización() Ejecuta los métodos de finalización de cualquier objeto pendiente de finalización. Sugiere que la JVM (máquina virtual de Java) amplíe el esfuerzo para ejecutar los métodos de finalización de los objetos que se han descartado pero cuyos métodos de finalización aún no se han ejecutado.
memoria total() Devuelve la cantidad de memoria total en la JVM (Java Virtual Machine) 
traceInstructions (booleano a) Habilita o deshabilita el rastreo de instrucciones. Si el argumento booleano es verdadero, sugerirá que la JVM emite información de depuración para cada instrucción en la máquina virtual a medida que se ejecuta.
traceMethodCalls(booleano a) Habilita o deshabilita el seguimiento de las llamadas a métodos. Si el argumento booleano es verdadero, sugerirá que la máquina virtual Java emite información de depuración para cada método en la máquina virtual a medida que se llama.

Ejemplo 1:

Java

// Java Program to Illustrate Runtime class
// Via getRuntime(), freeMemory() and
// totalMemory() Method
 
// Importing required classes
import java.lang.*;
import java.util.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Method 1: getRuntime()
        // Getting the current runtime associated
        // with this process
        Runtime run = Runtime.getRuntime();
 
        // Printing the current free memory for this runtime
        // using freeMemory() method
        System.out.println("" + run.freeMemory());
 
        // Method 2: freeMemory()
        // Printing the number of free bytes
        System.out.println(
            "" + Runtime.getRuntime().freeMemory());
 
        // Method 3: totalMemory()
        // Printing the number of total bytes
        System.out.println(
            "" + Runtime.getRuntime().totalMemory());
    }
}
Producción

132579840
132285936
134217728

Ejemplo 2:

Java

// Java Program to Illustrate Runtime class
// Via exec() Method
 
// Importing required classes
import java.util.*;
import java.lang.*;
 
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Try block to check for exceptions
        try {
           
            // Creating a process and execute google-chrome
            Process process = Runtime.getRuntime().exec(
                "google-chrome");
            System.out.println(
                "Google Chrome successfully started");
        }
 
        // Catch block to handle the exceptions
        catch (Exception e) {
            // Display the exception on the console
            e.printStackTrace();
        }
    }
}

Producción: 

Google Chrome successfully started

Nota: Reemplace con cualquier software que desee iniciar. Aquí trabajamos en Linux y google-chrome se escribe solo de esta manera. Puede diferir en windows/mac.

Ejemplo 3:

Java

// Java Program to Illustrate Runtime class
// Via availableProcessors() Method, exit() Method
 
// Importing required classes
import java.util.*;
import java.lang.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) {
 
        // Method 1: availableProcessors()
        // Check the number of processors available
        // and printing alongside
        System.out.println("" + Runtime.getRuntime()
                           .availableProcessors());
 
 
        // Method 2: exit()
        // Making program to exit
        Runtime.getRuntime().exit(0);
 
        // Nothing will run now
        System.out.println("Program Running Check");
 
        // Note: here we will notice that there will be no
        // output generated on console
 
    }
}
Producción

4

A partir de la salida anterior, queda claro que el método exit() no permite que se ejecute la declaración de impresión a continuación, ya que la «Verificación de ejecución del programa» no está impresa en la consola. Puede quedar claro si comentamos el funcionamiento de availableProcessors() que la salida del método exit() es la siguiente: 

Ejemplo 4:

Java

// Java Program to illustrate Runtime Class
// Via loadLibrary(), runFinalization()
// gc(), maxMemory()
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Method 1: loadLibrary()
        // Loading a library that is home/saket/Desktop
        // folder
        Runtime.getRuntime().loadLibrary(
            "/home/saket/Desktop/Library");
 
        System.out.println("Library Loaded Successfully");
 
        // Method 2: runFinalization()
        // Run the finalization
        Runtime.getRuntime().runFinalization();
 
        // Print statement
        System.out.println("Finalized");
 
        // Method 3: gc()
        // Run the garbage collector
        Runtime.getRuntime().gc();
 
        System.out.println("Running");
 
        // Method 4: maxMemory()
 
        // Printing  the maximum memory
        System.out.println(
            "" + Runtime.getRuntime().maxMemory());
    }
}

Producción: 

Library Loaded Successfully
Finalized
Running
2147483648

Ejemplo 5:

Java

// Java program to illustrate halt()
// method of Runtime class
public class GFG
{
    public static void main(String[] args)
    {
        // halt this process
        Runtime.getRuntime().halt(0);
 
        // print a string, just to see if it process is halted
        System.out.println("Process is still running.");
    }
}

Producción: 

 

 

A partir de la salida anterior, se aclara que el programa anterior se compiló correctamente y se ejecutó. No hay una declaración de impresión que se ejecute, ya que hemos utilizado el método halt() que finaliza la ejecución posterior de las operaciones.

Ejemplo 6:

Java

// Java Program to Illustrate exec()
// Method of Runtime class
 
// Importing required classes
import java.io.*;
import java.util.*;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) {
 
        // Try block to check for exceptions
        try {
 
            // Declaring a string array
            String[] cmd = new String[2];
 
            // Initializing elements of string array
            cmd[0] = "atom";
            cmd[1] = "File.java";
 
            // Creating a file with directory from local systems
            File dir = new File("/Users/mayanksolanki/Desktop");
 
            // Creating a process by creating Process class object
            // and execute above array using exec() method
            Process process = Runtime.getRuntime().exec(cmd, null);
 
            // Display message on console for successful execution
            System.out.println("File.java opening.");
        }
 
        // Catch block to handle exceptions
        catch (Exception e) {
 
            // Display exceptions with line number
            // using printStackTrace() method
            e.printStackTrace();
        }
    }
}

Producción: 

File.java opening.

Este artículo es una contribución de Saket Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *