Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java 9 में प्रोसेस API का उपयोग करके सभी प्रोसेस डेटा कैसे प्राप्त करें?

Process API और ProcessHandle

Java 9 में, Process API का उपयोग ऑपरेटिंग सिस्टम प्रोसेसेज को नियंत्रित और प्रबंधित करने के लिए किया गया है। ProcessHandle क्लास प्रोसेस का नेटिव प्रोसेस ID, प्रारंभ समय, संचित CPU समय, आर्गुमेंट्स, कमांड, उपयोगकर्ता, पैरेंट प्रोसेस, और वंशज प्रदान करता है। यह प्रोसेस लाइवनेस जांचने और प्रोसेसेज को नष्ट करने के लिए मेथड भी प्रदान करता है। हम allProcesses() मेथड का उपयोग करके सभी ProcessHandle डेटा को स्ट्रीम के रूप में पुनर्प्राप्त करते हैं।

उदाहरण: सभी प्रोसेस जानकारी पुनर्प्राप्त करना

import java.util.stream.Stream;
import java.util.Optional;

public class AllProcessesTest {
    public static void main(String args[]) throws InterruptedException {
        System.out.println("---------------------------");
        System.out.println("All Processes:");
        Stream<ProcessHandle> processStream = ProcessHandle.allProcesses();
        processStream.forEach(process -> printInfo(process));
    }
    private static void printInfo(ProcessHandle processHandle) {
        System.out.println("---------");
        System.out.println("Id: " + processHandle.pid());
        System.out.println("isAlive(): " + processHandle.isAlive());
        System.out.println("number of childrens: " + processHandle.children().count());
        System.out.println("isSupportsNormalTermination(): " + processHandle.supportsNormalTermination());
        ProcessHandle.Info processInfo = processHandle.info();
        System.out.println("Info: " + processInfo.toString());
        System.out.println("Info arguments().isPresent(): " + processInfo.arguments().isPresent());
        System.out.println("Info command().isPresent(): " + processInfo.command().isPresent());
        System.out.println("Info totalCpuDuration().isPresent(): " + processInfo.totalCpuDuration().isPresent());
        System.out.println("Info user().isPresent(): " + processInfo.user().isPresent());
    }
}

आउटपुट (नमूना)

---------------------------
All Processes:
Id: 7056
isAlive(): true
number of childrens: 0
isSupportsNormalTermination(): false
Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe, startTime: Optional[2020-03-09T03:26:00.406Z], totalTime: Optional[PT1M52.15625S]]
Info arguments().isPresent(): false
Info command().isPresent(): true
Info totalCpuDuration().isPresent(): true
Info user().isPresent(): true
... (अन्य प्रोसेसेज) ...

ProcessHandle.allProcesses() सिस्टम पर सभी दृश्य प्रोसेसेज की स्ट्रीम प्रदान करता है।

  1. Java में रिमोट मेथड के माध्यम से डेटा कैसे भेजें? Java में रिमोट मेथड के माध्यम से डेटा कैसे भेजें?

    RMI (रिमोट मेथड इनवोकेशन) एक JVM में ऑब्जेक्ट को दूसरे JVM में ऑब्जेक्ट के मेथड्स को इनवोक करने की अनुमति देता है। यह java.rmi पैकेज में है।RMI एप्लिकेशन के चरण1. रिमोट इंटरफेस परिभाषित करेंimport java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote { void pri

  1. जावा में CSV फ़ाइल से डेटा कैसे पढ़ें? जावा में CSV फ़ाइल से डेटा कैसे पढ़ें?

    CSV का अर्थ कॉमा सेपरेटेड वैल्यूज़ है। CSV फ़ाइल में, प्रत्येक पंक्ति में शब्द होते हैं जो कॉमा (,) से अलग होते हैं और इसे .csv एक्सटेंशन के साथ स्टोर किया जाता है। हम BufferedReader क्लास के readLine() मेथड का उपयोग करके CSV फ़ाइल को लाइन दर लाइन पढ़ सकते हैं। प्रत्येक पंक्ति को कॉमा कैरेक्टर पर

  1. जावा में प्रॉपर्टीज़ फ़ाइल से डेटा कैसे पढ़ें? जावा में प्रॉपर्टीज़ फ़ाइल से डेटा कैसे पढ़ें?

    Properties Hashtable क्लास का एक सबक्लास है और यह प्रॉपर्टीज़ के एक स्थायी सेट को दर्शाता है। Properties को स्ट्रीम में सेव किया जा सकता है या स्ट्रीम से लोड किया जा सकता है। प्रॉपर्टी लिस्ट में प्रत्येक कुंजी और उसका संबंधित मान एक स्ट्रिंग है। Properties फ़ाइल का उपयोग जावा में कॉन्फ़िगरेशन को ए