exec() funktioniert nicht

MR_UNIX

Bekanntes Mitglied
Hallo,

ich habe momentan ein kleines Problem, wo ich auch nach einigen Stunden Google und anderen Foren noch keinen wirklichen Ansatz gefunden habe, warum das nicht geht wie ich will.

Kurze Zusammenfassung: für eine Serveranwendung möchte ich verschlüsselte Verbindungen via SSL nutzen. Das Zertifikat wird beim ersten Start der Anwendung (nicht...) generiert und ist daher erst einmal selbst signiert. Die benötigten Informationen werden auf der Kommandozeile abgefragt und dann in einen Aufruf des Programms "keytool" umgeschrieben und dieser wiederum per
Code:
Runtime.getRuntime().exec(command)
ausgeführt.

Das Problem: unter Windows funktioniert alles einwandfrei (schon seltsam) und unter Linux ignoriert er den exec() Aufruf einfach. Es wird kein Keystore erstellt, das Zertifikat somit auch nicht und exportiert erst recht nicht. Die Frage ist, woran das liegt. Wenn ich mir den Prozess-Rückgabewert anzeigen lasse, kommt unter Windows eine "0" was ja für Erfolg steht, unter Linux (Debian 7 in meinem Fall) eine "1" - wenn ich über den InputStream vom Prozess Ausgaben anzeigen möchte, kommt aber in beiden Fällen keine Ausgabe. Witzig ist auch, dass wenn ich mir das erzeugte Kommando bzw. den Aufruf auf der Konsole ausgeben lasse und diesen dann manuell ausführe, es unter Linux UND Windows funktioniert.
Liegt möglicherweise eine fehlerhafte Implementierung der exec() Methode im OpenJDK vor?

Hier der Code:
Java:
private static void initKeystore()
{
	Scanner scr = new Scanner(System.in);
	System.out.println("**** IMPORTANT ****");
	System.out.println("You don't have a certificate for using SSL yet.");
	System.out.println("We will create it together now!");
	System.out.println();
	System.out.print("Name of your organisation: ");
	String ssl_o = scr.nextLine();
	String ssl_ou = ssl_o;
	System.out.print("Your name: ");
	String ssl_cn = scr.nextLine();
	System.out.print("Country code [de/en/fr]: ");
	String ssl_c = scr.nextLine();
	System.out.print("City: ");
	String ssl_l = scr.nextLine();
	System.out.print("State: ");
	String ssl_st = scr.nextLine();
	System.out.print("Password: ");
	String pass = new String(scr.nextLine());
		
	String execString = System.getProperty("java.home") + "/bin/keytool -genkey -keyalg RSA -alias dreamim -keystore " + KEYSTORE + " -storepass " + pass + " -validity 360 -dname \"cn=" + ssl_cn + ", o=" + ssl_o + ", ou=" + ssl_ou + ", c=" + ssl_c + ", l=" + ssl_l + ", st=" + ssl_st + "\" -keypass " + pass;
	System.out.println(execString);
	try
	{
		Process proc = Runtime.getRuntime().exec(execString);

		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
		String line;
		while ((line = bufferedReader.readLine()) != null)
		{
		    System.out.println(line);
		}
		bufferedReader.close();
			
		proc.waitFor();
		System.out.println("Key generation exited with code: " + proc.exitValue());
			
		execString = System.getProperty("java.home") + "/bin/keytool -export -keystore " + KEYSTORE + " -storepass " + pass + " -alias dreamim -file Certificate.crt";
		proc = Runtime.getRuntime().exec(execString);
		proc.waitFor();
			
		System.out.println("Please visit xxx for instructions how to deliver your SSL certificate for your users.");
	}
	catch (Exception e)
	{
		// Exception-Handling ausbauen
		e.printStackTrace();
	}
		
	// Keystore Passwort an die Hauptklasse weiterleiten.
		
	scr.close();
}

Ich wäre euch wirklich sehr dankbar, wenn ihr einen Ansatz liefern würdet, der hier weiterhilft. Ich bin verdammt verzweifelt.

Danke!
 
Zuletzt bearbeitet:

MR_UNIX

Bekanntes Mitglied
Hi nochmal,

Ich habe natürlich selber weiter nach dem Fehler gesucht und bin mittlerweile so weit, dass sich das wohl irgendwie auf den Kontext zurückführen lässt.

Wenn ich das generierte Kommando in einem vollständig unabhängigen Programm in ein exec() schmeiße, funktioniert es einwandfrei - auch unter Linux.
Trotzdem habe ich noch nicht herausgefunden, warum es im Kontext meines Programms nicht läuft.

Würde mich über Hilfe freuen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
M Registry Autostart Eintrag ertstellen mit Java (Runtime.getRuntime().exec()) Allgemeine Java-Themen 0
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2
Thallius Runtime.getRuntime().exec " escapen? Allgemeine Java-Themen 9
N Runtime.getRuntime().exec Problem mit find Allgemeine Java-Themen 3
T Bluescreen bei Runtime.exec(); Allgemeine Java-Themen 8
I Runtime.getRuntime().exec Problem Allgemeine Java-Themen 4
R Exec. Jar läd Bilder nicht! Allgemeine Java-Themen 5
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
N Runtime.exec() Allgemeine Java-Themen 7
S exec( "cmd /c") aber Konsole soll offen bleiben Allgemeine Java-Themen 9
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
Z Runtime.getRuntime().exec-Problem Allgemeine Java-Themen 4
F Kleines Problem mit exec Allgemeine Java-Themen 14
J Runtime.exec setzt Fokus auf Frame Allgemeine Java-Themen 2
V Probleme mit Runtime.exec() Allgemeine Java-Themen 3
M Runtime.exec() - Performance / Frage zu Threads Allgemeine Java-Themen 5
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
K getRuntime().exec() untersagen Allgemeine Java-Themen 6
T Runtime.exec() Allgemeine Java-Themen 3
X Wann ist Runtime.getRuntime().exec mit Copy fertig? Allgemeine Java-Themen 10
G Output eines über Runtime.getRuntime.exec gestarteten Jars Allgemeine Java-Themen 6
N runtime.exec() Problem Allgemeine Java-Themen 6
A exec-Problem Allgemeine Java-Themen 11
W Runtime.getRuntime().exec() Allgemeine Java-Themen 10
lordcarlos Runtime exec und mplayer (linux) Allgemeine Java-Themen 11
C JApplet und Runtime.getRuntime().exec() Allgemeine Java-Themen 2
K Runtime.exec mit Timeout Allgemeine Java-Themen 5
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
J Runtime.exec unter win vista? Allgemeine Java-Themen 10
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
J Unicode: cmd parameter (main args); exec params; filenames Allgemeine Java-Themen 2
L getRuntime.exec() Problem mit Hochkommata Allgemeine Java-Themen 3
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
F Problem mit Runtime.exec() Allgemeine Java-Themen 8
M Runtime.exec unter Vista (Administrator Rechte) Allgemeine Java-Themen 2
K Probleme mit Runtime.getRuntime().exec Allgemeine Java-Themen 6
A exec()-Methode Allgemeine Java-Themen 7
A Runtime.getRuntime().exec mit Warte auf Beendigung - Wie? Allgemeine Java-Themen 7
N CMD, EXEC, Befehle senden Allgemeine Java-Themen 3
R Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
the[V]oid Ausführen von "javac" über Runtime.exec() Allgemeine Java-Themen 4
L mit exec() befehl ausführen ( OS X / Linux) Allgemeine Java-Themen 8
H Exec Problem Allgemeine Java-Themen 3
F Runtime.getRuntime().exec mit Linux und Leerzeichen Allgemeine Java-Themen 3
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
T Runtime.exec -> Prozesskontrolle abgeben ? Allgemeine Java-Themen 11
B Probleme mit Runtime.getRuntime().exec("cmd.exe") Allgemeine Java-Themen 4
M Runtime.getRuntime().exec(txt_rsync_option.getText()); Allgemeine Java-Themen 12
M Rückgabewert von Runtime.getRuntime().exec() Allgemeine Java-Themen 2
S Runtime.exec() berechtigungen Allgemeine Java-Themen 5
S Runtime.exec und X Umgebung Allgemeine Java-Themen 2
N mit exec windows runterfahren (mit -c "und grund text&q Allgemeine Java-Themen 3
M Exec Allgemeine Java-Themen 4
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
M Problem mit getRuntime().exec() Allgemeine Java-Themen 9
M Access lässt sich nicht über "exec(command)" start Allgemeine Java-Themen 3
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
P Copy mit Runtime.exec() unter Unix Allgemeine Java-Themen 4
D Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 14
L Runtime.getRuntime.exec() Allgemeine Java-Themen 7
S Fehler von .getRuntime().exec(""); Allgemeine Java-Themen 5
T Probleme mit Runtime.exec in Jar File Allgemeine Java-Themen 2
M Runtime.exec unter Linux Allgemeine Java-Themen 11
N Perl Skript ausführen über exec Allgemeine Java-Themen 2
X Problem mit Runtime.getRuntime().exec("cls"); Allgemeine Java-Themen 18
S Runtime.getRunTime().exec("jar cvf .) hängt sich auf Allgemeine Java-Themen 3
M Runtime.getRuntime().exec() - Fehler abfangen Allgemeine Java-Themen 5
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
G JDK Version - exec Befehl Allgemeine Java-Themen 3
S dvbscan mit Runtime.getInstance().exec() ausführen ? Allgemeine Java-Themen 24
B Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
G Runtime.getRuntime().exec("cmd /c START") Allgemeine Java-Themen 3
M Runtime.exec() => java.io.exception: too many open files Allgemeine Java-Themen 10
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
H gerRuntime().exec stürtz ab? Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
Lukas2904 Wie funktioniert ein KeyLogger? Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
I Wieso funktioniert das nich? Allgemeine Java-Themen 5
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben