Java-da iş vaxtı sinfi


Java Çox oxlu İş vaxtıBaxılıb 44

Java-da iş vaxtı sinfi

Java -da RunTime SinifiPin

Java Runtime sinfi java.lang.Runtime paketinin bir hissəsidir və Java tətbiqetməsinin işləmə müddəti ilə qarşılıqlı əlaqə qurmaq üçün bir neçə daxili üsula malikdir. Hər java tətbiqində Runtime sinifinin yalnız 1 nümunəsi var. Runtime sinfi işləyən tətbiq haqqında müxtəlif məlumatlar verir. İstifadə edə bilərik getRuntime() cari Runtime obyektinin nümunəsini əldə etmək üsulu. Çalışma vaxtı sinifində olmadığından inşaatçılar, öz nümunəsini yarada bilməz.

Java Runtime sinif metodları

Java.lang.Runtime sinfi aşağıdakı kimi bir neçə daxili metoda malikdir:

Üsultəsvir
İş vaxtı getRuntime ()Cari İşləmə müddəti nümunəsini qaytarır
void addShutdownHook (Mövzu çəngəl)Yeni bir virtual maşın bağlama çəngəlini qeyd edir
int availableProsessorlar ()Java virtual maşınındakı mövcud prosessor sayını qaytarır
Process exec (String əmri)Müəyyən edilmiş sətir əmrini ayrıca bir proses kimi yerinə yetirir
Proses exec (String [] cmdarray)Müəyyən edilmiş əmr və sıra arqumentlərini ayrıca bir proses kimi icra edir
Process exec (String əmri, String [] envp)Müəyyən edilmiş sətir əmrini göstərilən mühitdə ayrıca bir proses olaraq yerinə yetirir
Proses exec (String [] cmdarray, String [] envp)Müəyyən edilmiş əmr və arqumenti göstərilən mühitdə ayrıca bir proses olaraq yerinə yetirir
Process exec (String əmri, String [] envp, File dir)Sətir əmrini göstərilən mühit və iş qovluğu ilə ayrı bir müddətdə icra edir.
Proses exec (String [] cmdarray, String [] envp, File dir)Göstərilən əmr arqumentlərini göstərilən iş qovluğu ilə ayrı bir müddətdə icra edir.
boş çıxış (int status)Bağlama ardıcıllığını başlataraq hazırda icra olunan JVM-ni dayandırır
uzun freeMemory ()JVM-də mövcud olan boş yaddaş həcmini qaytarır
boş gc ()JVM-nin zibil toplayıcısını işləyir
boş durma (int status)Hazırda icra olunan JVM-i zorla ləğv edir
boş yük (simli fayl adı)Fayl adı ilə göstərilən yerli kitabxananı yükləyir
uzun maxMemory ()JVM-nin istifadə etməyə çalışacağı maksimum yaddaş həcmini qaytarır
boolean removeShutdownHook (Thread hook)JVM-dən qeyd olunan çəngəlin qeydini silir
etibarsız runFinalization ()Hər hansı bir obyektin tamamlanmasını gözləyən yekunlaşdırma metodunu işlədir
uzun totalMemory ()JVM-də mövcud olan ümumi yaddaş həcmini qaytarır
Versiya versiyası ()Hal-hazırda işləyən JVM versiyasını qaytarır

Nümunə: İşləmə müddəti haqqında məlumat alın

Aşağıdakı nümunədə, istifadə edərək Runtime sinifinin bir nümunəsini yaradırıq getRuntime() metod. Bu nümunəni istifadə edərək, hazırda istifadə olunan java mühiti ilə əlaqəli müxtəlif məlumatları, mövcud yaddaş kimi istifadə edə bilərik freeMemory() üsul, ümumi yaddaş totalMemory() üsul, istifadə olunan prosessorların sayı availableProcessors() metodu və JVM istifadə edərək istifadə edə biləcəyi maksimum yaddaş maxMemory() metodu.

public class RuntimeDemo {

  public static void main(String[] args) {
    Runtime r = Runtime.getRuntime();
    
    System.out.println("Available memory in JVM: " + r.freeMemory());
    System.out.println("Total memory in JVM: " + r.totalMemory());
    System.out.println("Available processors: " + r.availableProcessors());
    System.out.println("Maximum memory: " + r.maxMemory());
    
  }

}
Available memory in JVM: 133169152
Total memory in JVM: 134217728
Available processors: 4
Maximum memory: 2124414976

Misal: exec () əmri - Java Runtime sinfi

The exec() Runtime sinfinin metodu göstərilən əmri yerinə yetirir. Bu nümunədə exec() üsul not defteri açır. Bu üsul atar Qeyri-qanuni sənəd əmr boş olduqda.

import java.io.IOException;

public class RuntimeDemo {

  public static void main(String[] args) {
    Runtime r = Runtime.getRuntime();
    
    try {
      Process p = r.exec("notepad.exe");
      System.out.println("Launched notepad successfully");
    } catch (IOException e) {
      e.printStackTrace();
    }
    
  }

}
Launched notepad successfully

Aşağıdakı nümunədə exec () metodunda 2 arqument var. Birinci parametr icra etmək istədiyimiz proqramdır, ikinci arqument isə başlamaq istədiyimiz proqramla əlaqəli sənəddir. Bu, notepad.exe proqramına aid olan File.txt faylını açmaq istədiyimiz deməkdir.

import java.io.IOException;

public class RuntimeDemo {

  public static void main(String[] args) {
    Runtime r = Runtime.getRuntime();
    
    try {
      String[] arrcmd = new String[2];
      arrcmd[0] = "notepad.exe";
      arrcmd[1] = "File.txt";
      Process p = r.exec(arrcmd);
      System.out.println("Launched notepad file successfully");
    } catch (IOException e) {
      e.printStackTrace();
    }
    
  }

}
Launched notepad file successfully

Misal: addShutdownHook () metodu

The addShutdownHook() metod yeni bir virtual maşın çəngəl ipliyini qeyd edir. Aşağıdakı nümunədə kod 3 saniyə gözləyir və sonra çağırır run() metodu.

public class AddHookDemo extends Thread{
  
  public void run() {
    System.out.println("Exit code");
  }

  public static void main(String[] args) throws InterruptedException {
    Runtime r = Runtime.getRuntime();
    r.addShutdownHook(new AddHookDemo());
    
    System.out.println("Wait for 3 seconds");
    Thread.sleep(3000);

  }

}
Wait for 3 seconds
Exit code

Nümunə: removeShutdownHook () metodu

The removeShutdownHook() metod əvvəlcədən qeyd olunan çəngəl ipliyini qeyddən çıxarır. Biz çağırırıq bəri removeShutdownHook() üsulu icra etmir run() metodu.

public class AddHookDemo extends Thread{
  
  public void run() {
    System.out.println("Exit code");
  }

  public static void main(String[] args) throws InterruptedException {
    Runtime r = Runtime.getRuntime();
    AddHookDemo a = new AddHookDemo();
    r.addShutdownHook(a);
    
    System.out.println("Wait for 3 seconds");
    Thread.sleep(3000);
    
    r.removeShutdownHook(a);

  }

}
Wait for 3 seconds

Misal: gc () metodu

The gc() üsul istifadə olunmamış mənbələri azad etmək üçün zibil toplayıcıyı çağırır. Bu, səmərəli yaddaş idarəçiliyinə kömək edəcəkdir.

public class gcDemo {

  public static void main(String[] args) {
    Runtime.getRuntime().gc();
    System.out.println("Running garbage collector");

  }

}
Running garbage collector

Məsələn: load () metodu

The load() metod göstərilən faylı dinamik olaraq yükləyir. Bu üsula tam fayl yolu arqumentini ötürməliyik.

public class LoadLibrary {

  public static void main(String[] args) {
    Runtime r = Runtime.getRuntime();
    r.load("C:\\Windows\\System32\\crypt32.dll");
    System.out.println("Loading...");

  }

}
Loading...

Nümunə: dayandırma () metodu

Java Runtime sinfinin halt () metodu proqramın icrasını güclə dayandırır və normal vəziyyətə qayıtmaq mümkün deyil. Aşağıdakı nümunədən dayandırma əmrindən sonrakı ifadələrin yerinə yetirilmədiyini görə bilərik.

public class HaltDemo{

  public static void main(String[] args) {
    Runtime r = Runtime.getRuntime();
    System.out.println("Executing the code");
    r.halt(0);
    System.out.println("Execution complete");
  }

}
v
Executing the code

arayış

Translate »
2