當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Java.lang.Runtime用法及代碼示例


在 Java 中,Runtime 類用於與每個具有 Runtime 類單個實例的 Java 應用程序進行交互,該實例允許應用程序與應用程序運行的環境進行交互。當前運行時間可以通過getRuntime()方法獲取。

Methods of Java Runtime class

方法 執行的操作
addShutdownHook(Thread hook) 注冊一個新的virtual-machine shutdown hook 線程。
availableProcessors() 返回 JVM(Java 虛擬機)可用的處理器數量
exec(String command) 在單獨的進程中執行給定的命令
執行(字符串[]命令) 在單獨的進程中執行指定的命令和參數。
exec(字符串命令,字符串[] envp,文件目錄) 在具有指定環境和工作目錄的單獨進程中執行指定的字符串命令。
exec(字符串命令,字符串[] envp) 在指定環境的單獨進程中執行指定的字符串命令。
exec(String[] cmdarray, String[] envp, 文件目錄) 在具有指定環境和工作目錄的單獨進程中執行指定的命令和參數。
exec(String[] cmdarray, String[] envp) 在指定環境的單獨進程中執行指定的命令和參數。
exit(int status) 通過啟動關閉序列來終止當前正在運行的 Java 虛擬機。
freeMemory() 返回 JVM(Java 虛擬機)中的可用內存量
gc() 運行垃圾Collector。調用此方法表明 Java 虛擬機將努力回收未使用的對象,以使它們當前占用的內存可用於快速重用。
getRuntime() 返回與當前 Java 應用程序關聯的實例或運行時對象
halt(int status) 強製終止當前正在運行的 Java 虛擬機。此方法永遠不會正常返回。使用此方法時應極其謹慎。
load(String filename) 將指定的文件名加載為動態庫。文件名參數必須是完整的路徑名。
loadLibrary(String libname) 加載指定庫名的動態庫。包含代碼的文件是從本地係統從通常獲取庫文件的位置加載的。
maxMemory() 返回 Java 虛擬機將嘗試使用的最大內存量。如果沒有固有限製,則將返回值 Long.MAX_VALUE
removeShutdownHook(Thread hook) De-registers 一個 previously-registered 虛擬機關閉鉤子。
runFinalization() 運行任何掛起終結的對象的終結方法。這表明 JVM(Java 虛擬機)將工作範圍擴大到運行那些已發現已被丟棄但尚未運行 Finalize 方法的對象的 Finalize 方法。
totalMemory() 返回 JVM(Java 虛擬機)中的總內存量
traceInstructions(boolean a) 啟用或禁用指令跟蹤。如果布爾參數為 true,那麽它將建議 JVM 在執行虛擬機中的每條指令時發出調試信息。
traceMethodCalls(boolean a) 啟用或禁用方法調用跟蹤。如果布爾參數為 true,那麽它將建議 Java 虛擬機在調用虛擬機中的每個方法時發出調試信息。

示例 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());
    }
}
輸出
132579840
132285936
134217728

示例 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();
        }
    }
}

輸出:

Google Chrome successfully started

Note: Replace with any software you want to start. Here we work on Linux and google-chrome is written like this way only. May differ in windows/mac.

示例 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
    }
}
輸出
4

從上麵的輸出可以清楚地看出,exit()方法不允許下麵的打印語句執行,因為“Program Running Check”沒有打印在控製台上。如果我們注釋掉availableProcessors()的工作,可以清楚地看到exit()方法輸出如下:

示例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());
    }
}

輸出:

Library Loaded Successfully
Finalized
Running
2147483648

實施例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.");
    }
}

輸出:

從上麵的輸出可以清楚地看出上麵的程序已成功編譯並運行。沒有執行打印語句,因為我們使用了 halt() 方法來終止操作的進一步執行。

實施例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();
        }
    }
}

輸出:

File.java opening.



相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.lang.Runtime class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。