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

जावा 9 में प्रोसेस एपीआई का उपयोग करके किसी प्रक्रिया को कैसे समाप्त/नष्ट करें?


Java 9 में, प्रक्रिया API किसी प्रक्रिया के बारे में अधिक जानकारी प्राप्त करने के आसान तरीके का समर्थन करता है। प्रोसेस हैंडल इंटरफ़ेस स्थानीय प्रक्रियाओं की पहचान और नियंत्रण प्रदान कर सकता है और प्रक्रियाओं की जीवंतता की जांच करने और प्रक्रियाओं को नष्ट करने के लिए विधि प्रदान कर सकता है जबकि ProcessHandle.Info इंटरफ़ेस एक प्रक्रिया का सूचना स्नैपशॉट दे सकता है। हमें नष्ट () . का उपयोग करके एक प्रक्रिया को नष्ट करने की आवश्यकता है ProcessHandle . की विधि इंटरफ़ेस।

नीचे दिए गए उदाहरण में, हमें ProcessHandle का उपयोग करके एक प्रक्रिया को समाप्त करने की आवश्यकता है इंटरफ़ेस।

उदाहरण

आयात करें ------------------------"); System.out.println ("प्रक्रिया को नष्ट करें:"); अंतिम स्ट्रिंग javaCmd =getJavaCmdFromParent (); अंतिम स्ट्रिंग क्लासपाथ =getClassPathFromParent (); कोशिश करें { अंतिम प्रक्रिया प्रक्रिया =नया प्रोसेसबिल्डर (javaCmd, "-cp", क्लासपाथ, DestroyProcessTest.class.getName() )।प्रारंभ(); ProcessHandle processHandle =process.toHandle(); प्रिंटइन्फो (प्रोसेसहैंडल); नष्ट प्रक्रिया (प्रक्रिया हैंडल); थ्रेड.स्लीप (1000); System.out.println ("---------------------------"); System.out.println ("प्रक्रिया को नष्ट करने के बाद:"); प्रिंटइन्फो (प्रोसेसहैंडल); } पकड़ें (IOException e) { e.printStackTrace (); } } निजी स्थिर स्ट्रिंग getClassPathFromParent() {वापसी System.getProperty("java.class.path", "./*"); } निजी स्थिर स्ट्रिंग getJavaCmdFromParent() { वापसी Objects.isNull(System.getProperty("java.home"))? "जावा":String.format("%s%sbin%sjava", System.getProperty("java.home"), File.separator, File.separator); } निजी स्थैतिक शून्य नष्टप्रक्रिया (ProcessHandle processHandle) IllegalStateException फेंकता है { System.out.println ("आईडी के साथ प्रक्रिया को नष्ट करने के लिए तैयार:" + processHandle.pid ()); प्रोसेसहैंडल।नष्ट करें (); } निजी स्थैतिक शून्य प्रिंटइन्फो (प्रोसेसहैंडल प्रोसेसहैंडल) {System.out.println("------------"); System.out.println("Id:" + प्रोसेसहैंडल.pid() ); System.out.println("isAlive():" + processHandle.isAlive() ); System.out.println("isSupportsNormalT Terminal():" + processHandle। ); ProcessHandle.Info processInfo =processHandle.info(); System.out.println ("जानकारी:" + processInfo.toString() ); System.out.println ("जानकारी तर्क ()। isPresent ():" + processInfo तर्क () .isPresent() ); System.out.println ("इन्फो कमांड ()। isPresent ():" + processInfo.command().isPresent() ); System.out.println("सूचना TotalCpuDuration().isPresent():" + processInfo.totalCpuDuration().isPresent() ); System.out.println("जानकारी उपयोगकर्ता ()। isPresent ():" + processInfo।user().isPresent() ); }}

आउटपुट

--------------------------प्रक्रिया नष्ट करें:--------Id:4384isAlive() :trueisSupportsNormalTर्मिनेशन ():falseInfo:[उपयोगकर्ता:वैकल्पिक [ट्यूटोरियल पॉइंट \ उपयोगकर्ता], cmd:C:\ Program Files \ Java \ jdk-9.0.4 \ bin \ java.exe, स्टार्टटाइम:वैकल्पिक [2020-03-06 टी 10:58 :53.210Z], कुल समय:वैकल्पिक [PT0.046875S]] जानकारी तर्क ()। isPresent ():falseInfo कमांड ()। isPresent ():trueInfo TotalCpuDuration ()। isPresent ():trueInfo उपयोगकर्ता ()। isPresent ():आईडी के साथ प्रक्रिया को नष्ट करने के लिए सच:4384 ------------------------ प्रक्रिया को नष्ट करने के बाद:--------- आईडी :4384isAlive ():falseisSupportsNormalTर्मिनेशन ():falseInfo:[उपयोगकर्ता:वैकल्पिक [ट्यूटोरियल पॉइंट \ उपयोगकर्ता], प्रारंभ समय:वैकल्पिक [2020-03-06 टी 10:58:53.210 जेड], कुल समय:वैकल्पिक [पीटी0.109375 एस]] जानकारी तर्क () .isPresent ():falseInfo कमांड ()। isPresent ():falseInfo TotalCpuDuration ()। isPresent ():trueInfo उपयोगकर्ता ()। isPresent ():सच 

  1. जावा 9 में प्रोसेस एपीआई के बारे में जानकारी का स्नैपशॉट कैसे प्राप्त करें?

    Java 9 प्रक्रिया API में सुधार हुआ है नई विधियों को शामिल करके और नए इंटरफेस पेश किए ProcessHandle और ProcessHandle.Info प्रक्रिया और उसकी जानकारी के बारे में सभी विवरण प्राप्त करने के लिए। प्रोसेसहैंडल इंटरफ़ेस मूल प्रक्रियाओं की पहचान और नियंत्रण प्रदान कर सकता है। जीवंतता . के लिए प्रत्येक व्य

  1. जावा 9 में प्रोसेसबिल्डर का उपयोग करके प्रक्रिया कैसे बनाएं?

    Java 9 जोड़ा गया प्रोसेस हैंडल प्रक्रिया API . के लिए इंटरफ़ेस प्रक्रिया वर्ग को बढ़ाने के लिए। ProcessHandle इंटरफ़ेस का एक उदाहरण एक स्थानीय प्रक्रिया की पहचान करता है जो हमें स्थिति प्रक्रिया को क्वेरी करने की अनुमति देता है और प्रक्रियाओं का प्रबंधन, और ProcessHandle.Info PID . प्राप्त करने

  1. जावा में स्ट्रीमिंग एपीआई का उपयोग करके JSON स्ट्रिंग को कैसे पार्स करें?

    स्ट्रीमिंग API एक महत्वपूर्ण इंटरफ़ेस शामिल है JsonParser और यह इंटरफ़ेस इसमें JSON को स्ट्रीमिंग तरीके से पार्स करने के तरीके शामिल हैं और आगे . प्रदान करता है , केवल पढ़ने के लिए JSON डेटा तक पहुंच। जेसन कक्षा में इनपुट स्रोतों से पार्सर बनाने के तरीके शामिल हैं। हम कर सकते हैं JSON को पार्स क