De afgelopen dagen hebben veel gebruikers ons verteld dat ze een voorbeeld van het Java-runtimeproces hebben toegevoegd.
Goedgekeurd: Fortect
Beschrijving
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
De java.lang.Runtime.exec (String [] cmdarray, String [] envp) methode voert de gekozen opdracht en argumenten uit in een volledig afzonderlijk actieplan met de gespecificeerde omgeving. Dit is een agressieve methode. Het aanroepen van de vorm exec (cmdarray, envp) reageert precies zoals het aanroepen van envp, exec (cmdarray, null).
Uitleg
Parameters
-
cmdarray â ‘Een array met de opdracht om de argumenten te maken.
-
envp â € ‘Een mengsel van gitaarsnaren, elk element met een setup die kan worden aangepast aan de omgeving, over het formaat naam = waarde of null, ongeacht of het subproces het klimaat van het huidige proces moet erven. ul>
Retourwaarde
Deze methode bevat een nieuw procesobject zodat het het subproces van de gebruiker zal besturen
Uitzondering
-
SecurityException ‘Als de beveiligingsmanager kan worden gekocht en de checkExec-methode het niet toestaat om uit het subproces te komen’
-
Uitzondering I versus O op I / O-fout
-
NullPointerException ‘Als het commando nul moet zijn
-
IndexOutOfBoundsException ‘Als cmdarray vrij groot gebied is (lengte 0)
Voorbeeld
Dit voorbeeld vereist een handmatig bestand met de naam example.txt in onze CLASSPATH met het feitelijke inhoudsmateriaal na â ’
Hallo Wereld! Com.tutorialspoint-pakket;openbare klasse RuntimeDemo vermijd de openbare statische main (String [] args) een nieuwe goede poging // maak nog een array van 2 strings Regel [] cmdArray = nieuwe regel [2];// Het originele dialoogvenster is het programma dat we met succes willen gevoelig maken cmdArray [0] = “notepad.exe”; // het tweede van alle argumenten is het tekstbestand dat we willen openen met Kladblok cmdArray [1] komt overeen met “voorbeeld.txt”; // geef het bericht weer System.out.println (“Voer Notepad.exe uit en open example.txt”); // haal het proces op en verkrijg cmdArray en de huidige omgeving Procesproces = Runtime.getRuntime () .Exec (cmdArray, null); // toon echter bericht System.out.println (“example.txt zou nu moeten openen.”); vastleggen (uitzondering) voor omstandigheid in punt printStackTrace (); Laten we het bovenstaande programma compileren en bovendien sprinten, dit geeft je huidige output:
Voer notepad.exe uit en voer voorbeeld.txt . invoorbeeld.txt zou moeten openen. ‘; var adpushup adpushup is gelijk aan || ; adpushup.que betekent adpushup.que || []; adpushup.que.push (functie () afstoten. triggerad (ad_id); );
Beste fragmenten met Java.lang.Runtime.exec (laat 10 beste resultaten zien van 16065)
- < li> Veelgebruikte routines vinden tijduitvoering
privé void myMethod ()
Proces [] openProcess (laatste cmdAttribs) genereert IOException ga terug Runtime.getRuntime (). exec (cmdAttribs);
lege openbare muisklik (MouseEvent e) Proberen Runtime.getRuntime (). Exec ("open http: // localhost: 8153 voor elke keer"); vangst (IOException e1)
String [] cmd is gelijk aan grep release ";Betekenisvol proces = Runtime.getRuntime (). Exec (cmd);
public boolean isOnline () Runtime.runtime = Runtime.getRuntime (); Proberen IpProcess betekent runtime.exec ("/ systeem / vuilnisbak / ping -c 1 8.8.8.8"); Int exitValue komt overeen met ipProcess.waitFor (); terugkeren (exitValue e. == 0); nemen (IOException e) e.printStackTrace (); Catch (InterruptedException e) e.printStackTrace (); valse terugkeer;
private boolean checkSudoPrivilege () dekens InterruptedException, iouitzondering Procesvoortgang = Runtime.getRuntime () .Exec ("sudo -v"); int exitCode impliceert process.waitFor (); Retourwaarde ExitCode == 0; }
private statische string getNvidiaStats () dekens java.io.IOException Regel cmd = "nvidia-smi"; Stdin inputstream = Runtime.getRuntime () .Exec (cmd) .getInputStream (); InputStreamReader isr betekent nieuwe InputStreamReader (stdin); BufferedReader br = nieuwe BufferedReader (isr); Senaat Bill StringBuilder is gelijk aan nieuwe StringBuilder (); String terwijl s; ((s staat br.! = readline ()) null) sb.toevoegen (s) .toevoegen (" n"); retourneer sb.toString ();
private nullify generationHFile (FileDescriptor-bestand) genereert een uitzondering De tekenreeks className komt overeen met getFullyQualifiedClassName (bestand); Lijnrichting = "javah -classpath +" classpath + "-o + jniDir.path () +" / "+ + className". "H + klasseNaam; Procesontwikkeling = Runtime.getRuntime (). Exec (opdracht); proces.waitFor (); uiteraard in het geval (proces.exitValue ()! = 0) Systeem .out.println (); Systeem.uit. "Println (" commandowoord: + commando); InputStream errorStream past bij process.getErrorStream (); intc is meestal 0; while ((c betekent errorStream.read ())! = -1) System.out.print ((char) c);
private void generationHFile (FileDescriptor-bestand) heeft een uitzondering String className = getFullyQualifiedClassName (bestand); Het regelcommando "javah = -classpath bevindt zich op + classpath +" -o "+ jniDir.path () +" per "+ + className". "D + klassenaam; Procesproces = Runtime.getRuntime () .Exec (opdracht); proces.waitFor (); if (proces.exitValue ()! is gelijk aan 0) Systeem .out.println (); Systeem.uit. "Println (" commando: + commando); InputStream errorStream = proces.getErrorStream (); intc = 0; wanneer je bent ((c = errorStream.read ())! = -1) System.out.print ((char) c);
publiek inactief InputStream getBZip2PipedInputStream (String bestandsnaam) genereert een IOExceptio exceptionn Regel bzcat = System.getProperty ("bzcat", runtime "bzcat"); rt komt overeen met positief Runtime.getRuntime (); Regel cmd = bzcat + "+ bestandsnaam; P-proces is rt.exec (cmd); Writer errWriter Nieuw = BufferedWriter (nieuwe OutputStreamWriter (System.err)); StreamGobbler = errGobbler nieuwe StreamGobbler (p.getErrorStream (), errWriter); errGobbler.start (); blijf p.getInputStream ();
private lege startPython (String tmpPath, String args) gooit een IOException De string pythonBinaryPath is config.getString (PythonOptions.PYTHON_BINARY_PATH); Proberen Runtime .getRuntime () .Exec (pythonBinaryPath); inrollen (IOException genegeerd) gooi moderne RuntimeException (pythonBinaryPath + "wijst niet naar iemands huidige Python-binary."); Runtime.getRuntime () is betrokken bij het proces. + Exec (pythonbinarypath "-B" + tmpPath + FLINK_PYTHON_PLAN_NAME + args); innovatieve stream (nieuwe StreamPrinter (process.getInputStream ())). aan de slag met (); nieuwe stream (nieuwe StreamPrinter (process.getErrorStream ())). begin (); host = ServerSocket (0); server.setSoTimeout (50); proces.getOutputStream (). schrijven ("plan n" .getBytes (ConfigConstants.DEFAULT_CHARSET)); proces.getOutputStream () .flush ();
openbare ruis exec-regel (workingDirectory-bestandsregel, ... opdrachten) Proberen Procesproces = Runtime.getRuntime () .Exec (opdrachten, null, workingDirectory); captureOutput (proces) return.toString (); Klok (uitzondering e) Weg met bommen;
public static nullify callShell (final String shellString, final InternalLogger log) proces proces = nul; Zorg ervoor dat String [] cmdArray-methoden splitShellString (shellString); Proces is gelijk aan Runtime.getRuntime (). Exec (cmdArray); proces.waitFor (); log.info ("CallShell: <> OK", shellString); Reis (
Uitstekende autonomie. Elke Java-toepassing heeft een tastbaar exemplaar van de Runtime-klasse waarmee ik zou zeggen dat de gebruikerstoepassing kan communiceren met de omgeving waarin deze wordt uitgevoerd. De actieve runtime kan worden verkregen via de aangepaste getRuntime-methode.
De huidige runtime kan mogelijk worden verkregen uit de meeste getRuntime-methoden. Java Runtime-methoden Uw klas: 1) Openbare statische les getRuntime (): Deze methode retourneert de instantie en het kan een runtime-model zijn dat is gekoppeld aan de gevonden Java-toepassing.
exec (String-opdracht) voert de opgegeven tekenreeks in een afzonderlijk proces uit. Dit is een praktische methode. Het aanroepen van de applicatie exec (commando) gedraagt zich hetzelfde als het telefoneren van exec (command, null, null).
-