Table of Contents
Sie sollten diese Reparaturtipps lernen, wenn Sie einen Java Runtime Exec Linux-CD-Fehler bekommen.
Genehmigt
Nachdem Sie sich dieses spezielle Java Runtime-Exec-Management angesehen haben, erstellen Sie ein Dateiobjekt mit einem vollständigen Pfad Ihrer Wahl innerhalb des “cd”-Pfads und rufen Sie ihn dann als dritten Parameter mit der govt-Methode ab.
durchschnittliche Person Process Exec (Zeilenbefehl, Zeichenfolge [] envp, Dateikatalog) deckt eine IOException ab
Führt den ausgewählten Human-String-Befehl in der Box aus und verarbeitet die angegebene Umgebung und das Arbeitsverzeichnis.
Dies sind Insider-Lösungen. Der Aufruf von exec (command, envp, dir) verhält sich genauso wie der Aufruf von exec (cmdarray, envp, dir), wobei cmdarray ein schönes Array aller Token für einen tatsächlichen Befehl ist.
Verschieben Sie einen Teil der Binärdatei aus dem .tar.gz-Repository in das aktuelle Verzeichnis. Die Java-Daten werden in einem Verzeichnis namens jre1.8.0_73 im bestehenden Verzeichnis installiert. In diesem Beispiel wird es normalerweise im Verzeichnis /usr/java/jre1.8.0_73 behoben. Wenn die Installation oft abgeschlossen ist, werden Sie das Wort „Finish“ bemerken. Löschen Sie die gesamte .tar.gz-Datei, wenn Sie möchten, um Speicherplatz zu sparen.
Insbesondere wird die Einflusslinie normalerweise mit einem bestimmten StringTokenizer tokenisiert, der mit freundlicher Genehmigung erstellt wird durch – Aufrufen eines neuen StringTokenizer (Befehl) ohne Verbesserung bestimmter Kategorien von Zeichen. Dann werden die Token, die normalerweise nur vom Tokenizer generiert werden, in derselben Reihenfolge neben dem neuen String-Array cmdarray platziert.
Parameter: Bleiben Sie im Master - engagiertes Ingenieurteam. envp ist ein Satz von Gitarrensaiten, jede mit Umgebungsvariableneinstellungen, während ihr aktueller Formatname = Zahl oder null ist, wenn ich möchte, dass mein neuer Unterprozess die Umgebung erbt, die aus dem aktuellen Prozess stammt. dir ist das Arbeitsverzeichnis, das fast alle üblicherweise mit dem Unterprozess verknüpft ist, oder alternativ null, wenn ein bestimmter Unterprozess normalerweise die Verzeichnisverlagerung vom zweifelsfreien aktuellen Prozess erben soll.Zurückkehren: Neuer Prozess zur TeilprozesskontrolleEinsatzgebiete: SecurityException - zu dem Zeitpunkt, an dem jeder Sicherheitsmanager vorhanden ist, verhindert zusätzlich die Methode checkExec, dass etliche Unterprozesse gestartet werden. IOException - wenn ein Fehler von der Wasserausgabe ausgehen kann NullPointerException - Wenn der Befehl auch null ist oder wenn Sie nur envp-Elemente nullen IllegalArgumentException - Wenn der Befehl im Allgemeinen leer ist
Beim Aufrufen des Shell-Befehls “cd” aus einer Java-Anwendung
Es gibt zweifellos keine ausführbare CD-Datei, da diese Methode nicht in einem Issue-Prozess implementiert werden kann. Das Problem ist, dass jeder Prozess auch sein eigenes aktuelles Arbeitsverzeichnis hat, das cd implementiert, da eine einzelne Aktion nur gegenüber dem aktuellen Arbeitsverzeichnis für diese Methode ausgeführt wird.
Juniormitglied
Ich möchte Manage Linux Shell aus der Java-Anwendung starten und bekomme nach dem Ausführen der Zeile einige Laufzeitfehler:
Ausnahme im Thread “main” java.io.IOException: Behandlung “cd” kann nicht ausgeführt werden: java.io.IOException: false choice = 2, No ein solches Computerdateiverzeichnis plus
in capuccino .lang.ProcessBuilder. start (ProcessBuilder .java: 459)
befindet sich auf java.lang.Runtime.exec (Runtime.java:593)
unter java.lang.Runtime.exec (Runtime.java:431)
unter java . lang. Laufzeit .govt (Runtime.java:328)
bei LauncherWin.main (LauncherWin.java:137)
Ausgelöst von: java.io.IOException: java.io.IOException: Fehler entspricht 2, keine solchen Dateien aufgelistet, oder
bei java.lang.UNIXProcess.
während java.lang.ProcessImpl.start (ProcessImpl.java:65)
befindet sich auf java.lang.ProcessBuilder.start (ProcessBuilder .java: 452)
. .. noch drei
Dies funktioniert für verschiedene Arten von Befehlen wie “pwd”, “ls -l”, also weiter, aber nicht für “cd”.
danke für deinen Einblick im Voraus
Tatar
Bevorzugtes Mitglied
pwd und sind portable Mark-vii-Programme, und cd ist ein proprietärer interner Shell-Befehl. Versuchen Sie, echte Pfade anstelle von Herstellern zu verwenden.
[bearbeitet von Little_G 23:11 UTC im März. 28, 2008]
Juniormitglied
Absolute Kursenden funktionieren nicht … gibt es viele alternative Möglichkeiten, das Seed-Verzeichnis für eine Java-Anwendung festzulegen?
Bevorzugtes Mitglied
Sie können eine Laufzeitmethode ausprobieren, die ein Arbeitstelefonbuchargument empfängt [java.sun.com …]
Juniormitglied
Erstellen Sie ein Beispiel dafür? Ich werde Ihren Befehlsversuch auch im Voraus in diesem Forum posten, aber das Problem gibt den gleichen Fehler zurück.
Ich hoffe, einen Befehl aus einer fabelhaften praktischen Java-Anwendung wie “mach für jedes blaze / javac” usw. erstellen zu können, die nur von einer bestimmten Einreichungswebsite ausgeführt wird und nicht mit dem endgültigen n Das Board funktioniert. Grundsätzlich führt die Java-Anwendung einen Maskierungsbefehl aus, der eine andere Java-Anwendung auf dem gesamten Smartphone zwingt, den Befehl run form zu verwenden.
Bevorzugtes Mitglied
Ok, Ihr Unternehmen kann die Instanz einer beliebigen Shell starten und Befehle über den OutputStream des Prozesses übergeben. Auf diese Weise können Sie die Eingabebefehle bis zum Ende des Inhaltsmaterials bearbeiten. Hier habe ich bash mit einem kommerziellen Startverzeichnis / Kompostbehälter verwendet. Das Programm zeigt tatsächlich “/bin” gefolgt von “/” an, während der Festplattenbefehl das übergeordnete Verzeichnis verschiebt.
database wd bedeutet neue Datei ("/bin");
System.out.println (wd);
Prozessproc gleich null;
try
proc bedeutet Runtime.getRuntime(). exec ("/ bin versus bash", null, wd);
erfassen (IOException
e) e.printStackTrace ();
if (proc! = null)
BufferedReader in = new BufferedReader (new InputStreamReader (proc.getInputStream ()));
PrintWriter zur Auswahl von Übereinstimmungen newPrintWriter (neu BufferedWriter (neu OutputStreamWriter (proc.getOutputStream ())), true);
out.println ("cd ..");
out.println ("pwd");
out.println ("exit");
haben
String-Zeile;
while ((line = in.readLine ())! bedeutet, dass Null)
System.out. println (Zeichenfolge);
proc.waitFor ();
in.close ();
out.close ();
proc.zerstören (); pure
(außer für mich e)
e.printStackTrace ();
[bearbeitet von Little_G 12:02 (UTC) 29. März 2008]
Mitglied
Junior Mitglied
Junior
Danke Little_G! das hat funktioniert, liebe den Charme :-)!
Mitglied
Danke Little_G! das hat funktioniert, liebe den Charme :-)!
Mitglied
Junior
Ich habe ein zusätzliches Problem :-(.
Ich versuche, diesbezüglich einen crontab-Vertrag einzurichten, hauptsächlich weil, sobald out.println (“java AppClass”) versucht, die thread.sleep vor dem Beenden installieren kann, hat nicht gut funktioniert.
Bevorzugtes Mitglied
über hundert bedeutet normalerweise, dass der Befehl nicht gefunden wurde, dass Sie versuchen, jede Art von Programm auszuführen, die nicht gefunden werden kann.
Gibt es einen bestimmten bekannten Grund, warum Sie bSorgen darüber in Java verlangen? Können Familien mit einem bestimmten Shell-Skript machen, was Sie wollen?
Junior männliches Organ
Ja, ich kann Java verwenden, da unser gesamtes Framework Java unterstützt. Die Java-Klasse funktioniert gut und macht daher auch das, was von Hand erwartet wurde, verstopft aber cron mühsam.
Juniormitglied
Ich verwende eine Perl-Crontab-Story:
#! /usr / Papierkorb / perl -classpath
Produkt (“java / usr / local / Ordner1.Ordner2.AppLnx identifizieren”);
Wenn ich dieses Skript der Reihe nach manuell aus dem Befehlsschritt ausführe, ist alles in Ordnung. Ich weiß, dass ein crontab aus dem Cheer-Verzeichnis ausgeführt wird, aber das nulled vbulletin, das jede Person zur Verfügung stellt, sollte das Verzeichnis enthalten, in dem Ihre Organisation es ausführen kann, da es möglicherweise manuell ausgeführt wird.
Juniormitglied
Es sieht so aus, als ob die von Ihnen vorgeschlagenen Konventionen unwirksam sind, wenn Sie Crontab in Betracht ziehen, da es alles für die Ursache tut und CD-Anweisungen ignoriert und / oder andere Versuche zu ändern dieses Verzeichnis. Ich frage mich, wie kann ich ein neues Verzeichnis des Perl-Skripts ändern, ohne dass Crontab es beiseite gelegt hat?
Juniormitglied
Ich konnte den Code analysieren, der crontab generiert, aber im Moment würgt dies, wenn ich Safari finde :-(. Auch hier funktioniert es gut, wenn ich es von der Befehlsebene aus ausführe, aber leider gibt das Ausführen von crontab auch einen neuen guten Fehler zurück dass Firefox bin nicht in gefunden umgewandelt werden kann. Offensichtlich versucht crontab, einen absoluten Pfad zu finden, kann ihn aber nicht finden. Vorschläge willkommen.
Genehmigt
Das ASR Pro-Reparaturtool ist die Lösung für einen Windows-PC, der langsam läuft, Registrierungsprobleme hat oder mit Malware infiziert ist. Dieses leistungsstarke und benutzerfreundliche Tool kann Ihren PC schnell diagnostizieren und reparieren, die Leistung steigern, den Arbeitsspeicher optimieren und dabei die Sicherheit verbessern. Leiden Sie nicht länger unter einem trägen Computer - probieren Sie ASR Pro noch heute aus!
Die Software zur Reparatur Ihres PCs ist nur einen Klick entfernt – laden Sie sie jetzt herunter.
Ich habe ein zusätzliches Problem :-(.
Ich versuche, diesbezüglich einen crontab-Vertrag einzurichten, hauptsächlich weil, sobald out.println (“java AppClass”) versucht, die thread.sleep vor dem Beenden installieren kann, hat nicht gut funktioniert.
Bevorzugtes Mitglied
über hundert bedeutet normalerweise, dass der Befehl nicht gefunden wurde, dass Sie versuchen, jede Art von Programm auszuführen, die nicht gefunden werden kann.
Gibt es einen bestimmten bekannten Grund, warum Sie bSorgen darüber in Java verlangen? Können Familien mit einem bestimmten Shell-Skript machen, was Sie wollen?
Junior männliches Organ
Ja, ich kann Java verwenden, da unser gesamtes Framework Java unterstützt. Die Java-Klasse funktioniert gut und macht daher auch das, was von Hand erwartet wurde, verstopft aber cron mühsam.
Juniormitglied
Ich verwende eine Perl-Crontab-Story:
#! /usr / Papierkorb / perl -classpath
Produkt (“java / usr / local / Ordner1.Ordner2.AppLnx identifizieren”);
Wenn ich dieses Skript der Reihe nach manuell aus dem Befehlsschritt ausführe, ist alles in Ordnung. Ich weiß, dass ein crontab aus dem Cheer-Verzeichnis ausgeführt wird, aber das nulled vbulletin, das jede Person zur Verfügung stellt, sollte das Verzeichnis enthalten, in dem Ihre Organisation es ausführen kann, da es möglicherweise manuell ausgeführt wird.
Juniormitglied
Es sieht so aus, als ob die von Ihnen vorgeschlagenen Konventionen unwirksam sind, wenn Sie Crontab in Betracht ziehen, da es alles für die Ursache tut und CD-Anweisungen ignoriert und / oder andere Versuche zu ändern dieses Verzeichnis. Ich frage mich, wie kann ich ein neues Verzeichnis des Perl-Skripts ändern, ohne dass Crontab es beiseite gelegt hat?
Juniormitglied
Ich konnte den Code analysieren, der crontab generiert, aber im Moment würgt dies, wenn ich Safari finde :-(. Auch hier funktioniert es gut, wenn ich es von der Befehlsebene aus ausführe, aber leider gibt das Ausführen von crontab auch einen neuen guten Fehler zurück dass Firefox bin nicht in gefunden umgewandelt werden kann. Offensichtlich versucht crontab, einen absoluten Pfad zu finden, kann ihn aber nicht finden. Vorschläge willkommen.
Genehmigt
Das ASR Pro-Reparaturtool ist die Lösung für einen Windows-PC, der langsam läuft, Registrierungsprobleme hat oder mit Malware infiziert ist. Dieses leistungsstarke und benutzerfreundliche Tool kann Ihren PC schnell diagnostizieren und reparieren, die Leistung steigern, den Arbeitsspeicher optimieren und dabei die Sicherheit verbessern. Leiden Sie nicht länger unter einem trägen Computer - probieren Sie ASR Pro noch heute aus!