Runtime.exec unter win vista?

Status
Nicht offen für weitere Antworten.
J

JosefAlten

Gast
ich möchte mit java cmd öffnen:

Code:
	public static void main(String[] args) {
		Runtime rtm ;
		Process proc;
		int returnWert=1;

		try {
			rtm = Runtime.getRuntime();
			proc = rtm.exec("cmd");
			proc.waitFor();
			returnWert = proc.exitValue();
			System.out.println(returnWert);
		} catch (Exception e) {

			e.printStackTrace();
		}
		System.out.println(returnWert);
	}

}

leider passiert nichts, weder eine exception, noch öffnet sich cmd oder ich bekomme eine ausgabe.
woran kanns liegen?
 

Ice-Tea

Bekanntes Mitglied
Ich stand vor kurzem vor einem änlichem Problem.

Leider konnte ich es mit JAVA nicht lösen.

Aber da sie Plattformunabhängigkeit beim aufruf von "cmd" sowieso dahin ist ( außer man fragt vorher das System nach seinem Namen) kannst du es auch mit C lösen.

da reicht schon ein Befehl:
Code:
#include "windows.h"

using namespace deinNamesraus;

int main(array<System::String ^> ^args)
{
	return WinExec("cmd", SW_SHOW);
}


Ich hatte das ganze übrigens benutzt um meinem Java-Programm eine start.exe zu spendieren.
 

Ice-Tea

Bekanntes Mitglied
Habs grad mal versucht - geht nicht.
Außerdem wird ja kein Befehlt an die konsole übergeben, sondern die konsole selber wird aufgerufen

/k ist sowei wie ich weiß dazu gedacht, der konsole zu sagen sie soll sich selbst nach dem übergebenem befehl nicht schließen.

Da aber kein befehl übergeben wird sollte sich die konsole sowieso nicht schließen.

Aber nochmal zur Info: Die Konsole geht gar nicht erst auf ;)

Ich hab es auch schon mit einer eigenen policy und permission-all versucht - kein erfolg
Ich denke es liegt an dem neuem Rechtesystem von Windows Vista.

Um das genze zu umgehen könnte man auch eine dll erstellen, die dann über einen JAVA Wrapper (JNI) aufgerufen wird.
Solange das mit dem Rechtesystem noch probleme macht, würde ich das so lösen.

Wenn jemand den consolenbefehl für "starte als admin" unter vista kenn, könnte man diesen mit in die exe/dll packen und entsprechend sogar "admin-only" programme öffnen.

Ich hab grad mal versucht regedit.exe (ein admin-only programm) mit dem o.g. C programm zu öffnen - geht nicht.
Das C-Programm muss explizit mit "recte Maustaste -> als Admin starten" gestartet werden, außer man setzt den haken unter eigenschaften "immer als admin öffnen"

Möglicherweise hilft hier die C funktion ShellExecute(). Die funktion an sich ist recht neu und stellt einen ersatz für WinExec dar.
Möglicherweise "weiß" diese funktion schon vorher ob es sich um ein admin-only programm handelt, ich hab jedefalls noch nicht versucht.
Denn wenn ich den befehl (regedit) in der vistaconsole eingebe, wird automatisch nach adminrechten gefragt - in meinem C-Prgogramm nicht.
 

FArt

Top Contributor
JosefAlten hat gesagt.:
ich möchte mit java cmd öffnen:

Code:
	public static void main(String[] args) {
		Runtime rtm ;
		Process proc;
		int returnWert=1;

		try {
			rtm = Runtime.getRuntime();
			proc = rtm.exec("cmd");
			proc.waitFor();
			returnWert = proc.exitValue();
			System.out.println(returnWert);
		} catch (Exception e) {

			e.printStackTrace();
		}
		System.out.println(returnWert);
	}

}

leider passiert nichts, weder eine exception, noch öffnet sich cmd oder ich bekomme eine ausgabe.
woran kanns liegen?

Was ist der Returnwert, oder blockiert waitFor noch?
Der Prozess gibt evtl. was auf Stdout oder Stderr aus (z.B. eine Fehlermeldung). Werte das mal aus.
 
S

SlaterB

Gast
unter WinXP funktioniert

proc = rtm.exec("cmd /c");

sowie

proc = rtm.exec("cmd /c regedit");

eine Konsole geht aber bei beiden nicht auf, nur das Programm bzw. Rückgabewert 0
 
G

Guest

Gast
zur ausgabe:

im beispielcode bekomme ich keine ausgabe, weil das programm nie beendet wird.....

mit

Code:
	proc = rtm.exec("cmd /c");

öffnet sich kein programm und ich bekomme als ausgabewert 0

kann das an den sicherheitsbestimmungen von vista liegen?

Mein eigentliches Ziel ist, den Pc herunterzufahren ( shutdown.exe), das ist doch mit jedem normalen Installationsprogramm möglich, wieso nicht mit Java??
 
S

SlaterB

Gast
immer dieses Gemecker ohne Testen,
klingt ja fast wie eine intelligente Form von 'ich weiß von nix, bitte Lösung für alles hinschreiben',
bei dem interessanten Thema spiele ich aber mit,

shutdown.exe also, was es nicht alles gibt,
wenn man das (unter XP) in die Konsole eintippt, dann fährt der PC auch nicht runter,
dann gibts nur ne Textausgabe, genau die kommt auch bei Java
und solange man die nicht aus dem InputStream liest, gehts nicht weiter (waitFor() bleibt wieder hängen)

Code:
public class Test {

	public static void main(String[] args) throws Exception {
		Runtime rtm;
		Process proc;
		int returnWert = 1;

		try {
			rtm = Runtime.getRuntime();
			System.out.println("a1");
			proc = rtm.exec("cmd /c shutdown");
			System.out.println("a2");

			Thread.sleep(100);
			BufferedReader in = new BufferedReader(new InputStreamReader(proc
					.getInputStream()));
			String line = null;
			while ((line = in.readLine()) != null) {
				System.out.println("line: " + line);

			}
			proc.waitFor();
			System.out.println("a3");
			returnWert = proc.exitValue();
			System.out.println("a4");
			System.out.println(returnWert);
		} catch (Exception e) {

			e.printStackTrace();
		}
		System.out.println(returnWert);
	}

}

Ausgabe:

a1
a2
line: Syntax: shutdown [-l | -s | -r | -a] [-f] [-m \\Computer] [-t xx]
line:                  [-c "Kommentar"] [-d up:xx:yy]
line: 
line:   Keine Argumente Zeigt diese Meldung an (wie -?).
line:   -i		  Zeigt eine grafische Benutzeroberfl„che an (muss die erste
line: 		  Option sein).
line:   -l		  Abmelden (kann nicht mit der Option -m verwendet werden).
line:   -s		  F„hrt den Computer herunter.
line:   -r		  F„hrt den Computer herunter und startet ihn neu.
line:   -a		  Bricht das Herunterfahren des Systems ab.
line:   -m \\Computer   Remotecomputer zum Herunterfahren/Neustarten/Abbrechen.
line:   -t xx		  Zeitlimit f?r das Herunterfahren, in xx Sekunden.
line:   -c "Kommentar"  Kommentar f?r das Herunterfahren (maximal 127 Zeichen).
line:   -f		  Erzwingt das Schlieáen ausgef?hrter Anwendungen ohne Warnung.
line:   -d [u][p]:xx:yy Grund (Code) f?r das Herunterfahren:
line: 		  u = Benutzercode
line: 		  p = Code f?r geplantes Herunterfahren
line: 		  xx = Hauptgrund (positive ganze Zahl kleiner als 256)
line: 		  yy = Weiterer Grund (positive ganze Zahl kleiner als 65536)
a3
a4
0
0

cmd /c shutdown -s
führt bei mir zu einem Neustart nach einem 30 Sekunden-Countdown,
nicht gerade sicher, aber so ist eben Windows

------

falls du übrigens einfach nur ein Konsolenfenster öffnen willst, das geht ab Java 1.6 mit

Desktop.getDesktop().open(new File("C:/WINDOWS/system32/cmd.exe"));
bzw. ähnlich

------

mit
proc = rtm.exec("cmd /c cmd");

hat man quasi eine offene Konsole ohne Fenster, die initiale Ausgabe ist bei obigen Programm

Code:
a1
a2
line: Microsoft Windows XP [Version 5.1.2600]
line: (C) Copyright 1985-2001 Microsoft Corp.
line:

und dann hängt
proc.waitFor();
weil die Konsole natürlich nicht von selber zu geht, dann müsste man in proc.getOutputstream() nun Befehle wie 'shutdown' eintippen,
 

Ice-Tea

Bekanntes Mitglied
Wahhhnsinn!!


Ich bin begeistert! (und das kommt selten vor)


Code:
Desktop.getDesktop().open(new File("C:/WINDOWS/regedit.exe"));

fragt sogar nach Adminrechten!

Danke für diese sehr nützliche Info :toll:
 

thE_29

Top Contributor
Oho!
Na da werde ich meine WinRegistry mal anpassen und gucken wenn Java 1.6 Version, dann probier es so öffnen!

Muss ich gleich daheim heute testen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
M Runtime.exec unter Vista (Administrator Rechte) Allgemeine Java-Themen 2
P Copy mit Runtime.exec() unter Unix Allgemeine Java-Themen 4
M Runtime.exec unter Linux Allgemeine Java-Themen 11
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
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
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
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
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
N Runtime.exec() Allgemeine Java-Themen 7
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
Z Runtime.getRuntime().exec-Problem Allgemeine Java-Themen 4
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
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
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
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
F Problem mit Runtime.exec() Allgemeine Java-Themen 8
K Probleme mit Runtime.getRuntime().exec Allgemeine Java-Themen 6
A Runtime.getRuntime().exec mit Warte auf Beendigung - Wie? Allgemeine Java-Themen 7
R Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
the[V]oid Ausführen von "javac" über Runtime.exec() Allgemeine Java-Themen 4
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
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
D Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 14
L Runtime.getRuntime.exec() Allgemeine Java-Themen 7
T Probleme mit Runtime.exec in Jar File 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 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
M this application requires a java runtime environment 1.8.0 Allgemeine Java-Themen 2
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
J Verschiedene Runtime Versionen gleichzeitig? Allgemeine Java-Themen 12
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
C Runtime Problem Allgemeine Java-Themen 1
P programm öffnen mit der runtime Allgemeine Java-Themen 9
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
P Runtime bzw. RAM-Auslastung eines Prozesses Allgemeine Java-Themen 9
M Befehl in Runtime ausführen der Eingabe benötigt Allgemeine Java-Themen 3
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S Runtime Exceptions in eine Datei schreiben Allgemeine Java-Themen 7
N Internet Explorer mit bestimter Java Runtime starten Allgemeine Java-Themen 2
S Runtime.getRuntime()... Allgemeine Java-Themen 6
S Rückgabewert runtime Allgemeine Java-Themen 11
martin82 Java Runtime Update >17 - SwingWorker Änderungen? Allgemeine Java-Themen 7
W java ohne runtime Allgemeine Java-Themen 2
G Runtime? Allgemeine Java-Themen 3
S Problem mit Runtime. Allgemeine Java-Themen 2
E Programm mit der Runtime ausführen Allgemeine Java-Themen 8
M Runtime & Exception Allgemeine Java-Themen 3
J ServiceInterface - Runtime() > jemand eine idee? Allgemeine Java-Themen 2
A Runtime oder ProcessBuilder exe starten Allgemeine Java-Themen 3
V Java-Programm vom USB-Stick ohne Runtime-Installation Allgemeine Java-Themen 18
W In Runtime Output schreiben Allgemeine Java-Themen 5
J Probiert mal bitte aus (Thread + Runtime) Allgemeine Java-Themen 10
A Installierte Runtime ermitteln Allgemeine Java-Themen 3
T ausführbares jar File mit integriertem Java Runtime 6+JOGL Allgemeine Java-Themen 7
W Runtime Error216 Runtime error 217 Allgemeine Java-Themen 6
B Runtime Verzeichniss wechseln Allgemeine Java-Themen 8
C Java SE Runtime 6 Update 1 - IE 7 und FF 2.0 - Allgemeine Java-Themen 6
G Programm wird von java cmd runtime nicht aufgerufen? Allgemeine Java-Themen 13
A Runtime Process bricht nicht ab! Allgemeine Java-Themen 7
C Rechte unter WinXP, MySQL-Server per Runtime herunterfahren? Allgemeine Java-Themen 6
G Java Runtime Verzeichnis ermitteln Allgemeine Java-Themen 3
9 J2SE Runtime Environment 5.0 Allgemeine Java-Themen 6
G Runtime.getRuntime() Allgemeine Java-Themen 10
S Programm starten mit Runtime aktuelles Verzeichnis wechseln Allgemeine Java-Themen 7
W Aggregierter JaCoCo.exec erzeugen Allgemeine Java-Themen 0
M exec() funktioniert nicht Allgemeine Java-Themen 1
R Exec. Jar läd Bilder nicht! Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben