PATH Varaibel für exex() laden

Status
Nicht offen für weitere Antworten.

duddits

Aktives Mitglied
Hi,

ich suche eine Möglichkeit, für Runtime.getRuntime().exec( command ) oder vergleichbares die PATH-VAriabel des jeweiligen genutzen Betriebsystem zu laden.
Aber wie ist das Möglich z.B. unter Windows?

Eine weitere Frage die mcih beschäftigt, ist das z.B. folgendes nicht klappt:

Code:
...
public static void main(String[] args) {
		try {
			Runtime.getRuntime().exec("cmd /c dir");
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
...

Lasse ich nur Runtime.getRuntime().exec("dir"); im Konstruktor, so erhalte ich folgende Meldung:

Code:
java.io.IOException: CreateProcess: dir error=2
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at Shell.main(Programm.java:10)

Ich hoffe Ihr könnt mir beim Lösen beider Probelem weiterhelfen.

Ich bedanke mich schonmal im Vorraus für eure Hilfe.


mfg duddits
 

thE_29

Top Contributor
Wieso sollte das erste nicht klappen?

Natürlich klappt das...

Desweiteren was meinst du mit laden?

WIllst du den Inhalt der Path variable haben?
 

Murray

Top Contributor
duddits hat gesagt.:
ich suche eine Möglichkeit, für Runtime.getRuntime().exec( command ) oder vergleichbares die PATH-VAriabel des jeweiligen genutzen Betriebsystem zu laden.
Aber wie ist das Möglich z.B. unter Windows?

Wenn Du die Umgebungsvariablen auslesen willst: sieh Dir System#getenv() an.

Wenn Du die Umgebungsvariablen für einen Prozess umsetzen willst: verwende statt Runtime#exec lieber einen ProcessBuilder, dort kann man das Environment vor der Ausführung modifizieren.
 

duddits

Aktives Mitglied
Hi,

thE_29 hat gesagt.:
Wieso sollte das erste nicht klappen?

Natürlich klappt das...

bei mir aber nicht und eine Exception wird auch nicht gworfen, es passiert einfach nichts.

thE_29 hat gesagt.:
Desweiteren was meinst du mit laden?

WIllst du den Inhalt der Path variable haben?

Hmm nicht direkt, ich möchte wenn ich exec aufrufe, dieser sich eine vorher definierte PATH-Variabel lädt oder die des gerade aktiven OS, das wäre für mich die Ideal Lösung.

Werde jetzt aber erstmal den Tipp von Murray ausprobieren. Allerdings will ich aus Gründen der Abwärtskompatibilät zu 1.4 den ProcessBuilder nicht verwenden.

mfg duddits
 

thE_29

Top Contributor
System.getEnv ist in 1.4 != das was es in 1.5 ist!


In 1.4 isses sogar deprecated!

Und in 1.4 liest der irgendwas aus und in 1.5 wirklich die Systemvariablen!
 

duddits

Aktives Mitglied
Hi,

Um noch mal zu dem Problem zu kommen. Das hier es das kleine Programm bei den ich Probleme habe:
Code:
public static void main(String[] args) {
		
		try
		{
			
		String startort = "/";
		boolean exit = true;
		String s;
		BufferedReader br =  new BufferedReader(new InputStreamReader(System.in));
		File f = new File(startort);
		while(exit){
			System.out.print(f.getAbsolutePath()+"> ");
			s = br.readLine();
			
			//Shell beendet sich, wenn exit eingegeben wird
			if(s.equals("exit")){
				exit = false;
			}else{
				try{
				Runtime.getRuntime().exec(s);}catch(Exception ik){
					System.out.print(f.getAbsolutePath()+"> Befehl "+s+" konnte nicht gefunden werden");
				}
			}
		}
		}catch(Exception io){
			io.printStackTrace();
		}
		

	}

Ich möchte also wenn jmd. seinen Befehl eingibt dieser ausgeführt wird und anschließend auch angezeigt wird.
Derzeit allerdings ist es anscheinend so, das der Befehl zwar erfolgreich ausgeführt wird, aber das ERgebnis nicht zu sehen bekomme.

Was mache ich hier falsch. Oder muss ich doch zum ProcessBuilder greifen?

mfg duddits
 

duddits

Aktives Mitglied
Hi,


erstmal will ich mich für den doppelpost entschuldigen, aber ich denke so bleibt es übersichtlicher und natürlich vielen dank für eure Hilfe bis jetzt.

also ich habe es jetzt folgendermaßen probiert:

Code:
	public static void main(String[] args) {
		
		try
		{
			
		String startort = "/";
		boolean exit = true;
		String s;
		BufferedReader br =  new BufferedReader(new InputStreamReader(System.in));
		File f = new File(startort);
		while(exit){
			System.out.print(f.getAbsolutePath()+"> ");
			s = br.readLine();
			
			//Shell beendet sich, wenn exit eingegeben wird
			if(s.equals("exit")){
				exit = false;
			}else{
				try{
					String sa[] = { s };
				    ProcessBuilder builder = new ProcessBuilder(sa);
				    builder.directory( new File("startort") );
				    Process p = builder.start();
				    Scanner se = new Scanner( p.getInputStream() ).useDelimiter( "\\Z" );
				    System.out.println( se.next() );
				
				}catch(Exception ik){
					System.out.println(f.getAbsolutePath()+"> Befehl "+s+" konnte nicht gefunden werden");
				}
			}
		}
		}catch(Exception io){
			io.printStackTrace();
		}

allerdings funktioniert es nicht und ich weiß bis her nicht wieso.

Ich hoffe Ihr könnt mir da weiter helfen.
 

duddits

Aktives Mitglied
Hi,

ich hoffe, es nciht schlimm, das ich meine alten Beitrag nicht editiert habe.

Also ds ist der Fehler/Exception die ich erhalte,

Code:
C:\> help
java.io.IOException: CreateProcess: cmd /c help error=267
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	at java.lang.ProcessBuilder.start(Unknown Source)
	at WinShell.main(WinShell.java:59)

wenn ich das Programm folgendermaßen ändere:

String sa[] = { s }; --> alte Fassung
von zu
String sa[] = { "cmd","/c",s }; --> neue Fassung


Allerdings wird bei beiden Varianten eine Exception geworfen.
 

Murray

Top Contributor
Fehler 267 bedeutet, dass das Verzeichnis ungültig ist. Der Übeltäter steckt wohl hier:
Code:
builder.directory( new File("startort") );
Vermutlich gibt es im aktuellen Verzeichnis kein Unterverzeichnis mit dem Namen "startort". Gemeint ist hier doch wohl auch vielmehr der Inhalt der Variablen startort - also sollten die Anführungszeichen lieber weg :wink:
 

duddits

Aktives Mitglied
Hi,

vielen dank :D . Es lag wirklich nur daran. Hatte irgendwie meine Variabel startort in Anführungszeichen stehen.
Somit ist mein Problem endlich gelöst.
Ist wohl echt manchmals so das man vor lauter Bäumen den Wald nicht mehr sieht :)


greetz duddits
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
N File Path mit Variablen angeben Allgemeine Java-Themen 1
G javafx "class path" exception Allgemeine Java-Themen 5
M SQL-Developer Installation: Unable to launch the Java Virtual Machine Located at path msvcr100.dll Allgemeine Java-Themen 1
D Eclipes Build Path Allgemeine Java-Themen 9
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
T Erste Schritte FAIL - Deployed application at context path / but context failed to start Allgemeine Java-Themen 1
A get current path with Drive Letter, instead of UNC path Allgemeine Java-Themen 7
J Java getMethodName and Path Allgemeine Java-Themen 6
M nio path Allgemeine Java-Themen 1
P Tomcat Deploy path Allgemeine Java-Themen 2
reibi JNA - Native Acess - Library Path Allgemeine Java-Themen 2
P Methoden Path.toFile().canRead vs Path.isReadable Allgemeine Java-Themen 7
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
H java.library.path mit einer Batch-Datei einstellen Allgemeine Java-Themen 3
S Path abfahren? Allgemeine Java-Themen 6
R java in der konsole nicht gefunden trotz jre,jdk,home und path Allgemeine Java-Themen 4
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
M net4j in Eclipse, installiert aber nicht im Build-path Allgemeine Java-Themen 4
J Eclipse Java Build Path / Java Problem??? Allgemeine Java-Themen 13
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
I Last Path in File Chooser Allgemeine Java-Themen 7
G java.libary.path Allgemeine Java-Themen 7
Lufti Unterschied zwischen Djava.library.path und Class-Path im Manifest? Allgemeine Java-Themen 2
G Umgebungsvariabeln auslesen (Path, Temp, oder eigene) Allgemeine Java-Themen 2
M Eclipse -> Build Path Allgemeine Java-Themen 8
B Grundlegendes zu JAVA_HOME und PATH Allgemeine Java-Themen 9
C Class-Path in Manifest Allgemeine Java-Themen 3
A java.library.path festlegen. Allgemeine Java-Themen 5
foobar java.library.path Property setzen Allgemeine Java-Themen 5
B frage zu "file.renameTo()" bzw. abstract path allg Allgemeine Java-Themen 8
V Alle Daten in einen path bekommen? listfiles()? Allgemeine Java-Themen 8
S working path ermitteln Allgemeine Java-Themen 2
Oneixee5 Für die RPi-Bastler ... Allgemeine Java-Themen 0
I PDF2Tiff für Fax Allgemeine Java-Themen 0
W Vergleichstool für xml-Dateien Tortoise-svn Verknüpfung Allgemeine Java-Themen 2
Zrebna Tipps für Organisation von Code-Reviews nach einem Pull Request. Allgemeine Java-Themen 5
Zrebna Bitte um Empfehlungen für "zeitlose" Bücher bzgl. Backend mit Spring und Beans Allgemeine Java-Themen 25
G Lesbare args für die main-Methode Allgemeine Java-Themen 6
B Algorithmus für Arbeit mit fehlenden Listenelementen? Allgemeine Java-Themen 1
kodela Eingabe für TextArray bedingt sperren Allgemeine Java-Themen 3
Karl_Der_Nette_Anfänger Hat wer ne Lösung für verknüpfte Postleitzahlen? (Baum/Wurzel Struktur) Allgemeine Java-Themen 11
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
G KeyListener für JTextField Allgemeine Java-Themen 5
webracer999 Library für Textsuche (z. B. include/exclude, and/or)? Allgemeine Java-Themen 5
I Module-Info für Jar erzeugen Allgemeine Java-Themen 7
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
B Simpler Eventlistener für Tastaturtaste bauen? Allgemeine Java-Themen 13
G Eingegebenen Text Zeile für Zeile ausgeben lassen Allgemeine Java-Themen 11
E Key für TOTP Algorythmus(Google Authentificator) Allgemeine Java-Themen 0
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
jhCDtGVjcZGcfzug Klassen Was genau passiert hier? Kann mir das jemand bitte Zeile für Zeile erklären? Allgemeine Java-Themen 1
rosima26 Bester Sortieralgorithmus für kurze Arrays Allgemeine Java-Themen 40
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
B Mit welchen Datentypen und Strukturierung am Besten dutzende Baccaratspiele Shcritt für Schritt durchsimulieren? Allgemeine Java-Themen 26
D Klassendesign für einen Pascal Interpreter Allgemeine Java-Themen 6
I OCR Library für Belegerkennung Allgemeine Java-Themen 7
farah GetterMathod für Farbkanäle Allgemeine Java-Themen 6
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
S Webservices für binäre Daten? Allgemeine Java-Themen 5
G Licence-Header für InHouse entwickelten Source Allgemeine Java-Themen 8
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
O git ignore für Intellji braucht es die .idea Dateien? Allgemeine Java-Themen 8
F Java Script für das Vorhaben das richtige? Allgemeine Java-Themen 9
M wiviel Java muss ich für die Berufswelt können ? Allgemeine Java-Themen 5
Robertop Datumsformat für GB ab Java 16 Allgemeine Java-Themen 1
Thallius Verschiedene entities für gleichen Code…. Allgemeine Java-Themen 8
OnDemand Zentrale "Drehscheibe" für verschiedene APIs Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
D SHA-3 für Java-version 1.8 Allgemeine Java-Themen 1
N Validator für einen SQL-Befehl Allgemeine Java-Themen 22
Muatasem Hammud Erstellung von Testdaten für Arrays Allgemeine Java-Themen 6
B Logikfehlersuche, das perfekte Lottosystem für 3 Richtige mit Arraylists? Allgemeine Java-Themen 71
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
M API für PLZ Umkreissuche Allgemeine Java-Themen 3
1Spinne JDK 8 für Eclipse installieren Allgemeine Java-Themen 5
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
L Methoden Parser für gängige Datumsformate? Allgemeine Java-Themen 1
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
buchfrau Anagram für beliebiges Wort Allgemeine Java-Themen 2
TonioTec Api für Datenaustausch zwischen Client und Server Allgemeine Java-Themen 0
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
Kirby.exe Distanz Map für die Distanztransformation erstellen Allgemeine Java-Themen 1
F PI Regler für Heizung Allgemeine Java-Themen 7
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
M Wie übergebe ich den Zähler für die Anzahl Rekursionsschritte korrekt? Allgemeine Java-Themen 2
B Login für User, der im Hintergrund Schedules ausführt Allgemeine Java-Themen 16
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
Z Welches GUI Framework für Java ist aktuell? Allgemeine Java-Themen 16
N Convert.FromBase64 von C# für Java Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben