ich habe eine relativ simples Problem.
Ich möchte ein externes Programm mit jeder Menge Parameter aufrufen.
Meine Anzeige bestätigt auch, dass das Programm ausgeführt wurde, allerdings wurde es ohne die angegebenen Parameter gestartet. Wie starte ich das Programm mit übergebenen Parametern? Als einfacher String wie im Beispiel scheint es nicht zu klappen, obwohl ich es in anderen Beispielen auch so gesehen hab. Was mach ich falsch?
Code:
String cmd=".\\bin\\sapinfo.exe ashost="+SysServer[i]+" sysnr="+SystemNo[i]+" >nul & if errorlevel 1 (echo not_active) ELSE ( echo active)";
System.out.println("Auszuführendes Kommando: " +cmd);
InputStreamReader In = new InputStreamReader(Runtime.getRuntime().exec(cmd).getInputStream());
BufferedReader br = new BufferedReader(In);
String strLine = "";
while ((strLine=br.readLine())!= null)
System.out.println("Line: "+strLine);
br.close();
Wobei cmd der Konsole cmd.exe entspricht. Bei DOS Programmen sollte hierbei Command.com statt cmd verwendet werden.
Ich hoffe ich hab das richtig zusammengefaßt.
Diese Option gehört zu cmd.exe. Wenn sie mit eingeschaltet wird, schließt (close) sich die Console automatisch nach Ausführung des Befehls in der Console.
Hi,
ich hab n ähnliches prob.
hab n prog geschrieben, das mir den rechner runterfährt, und starte das über ne .bat. jetzt hätt ichs gern, das ich im cmd n wert angeben kann, wann der rechner runtergefahren werden soll. also, das mit der verzögerung klappt bestens, aber nur wenn ich das prog aus eclipse laufen lasse. macht aber nicht wirklich sinn, jedesmal erst eclipse zu starten um das prog auszuführen.
wie kann ich jetzt über die konsole den parameter übergeben? hab das von oben mal aufgegriffen, aber es tut nix.
fehlermedlung bekomm ich auch: fatal exception occured. program will exit
geb ich das von hand ins cmd ein bekomm ich die: could not find the main class. program will exit
Ich denke nicht. Du hast ein ganz anderes.
Du kannst entweder in deiner main()-Methode die übergebenen Argumente abfragen und in deinem Programm entsprechend einsetzen, oder über einen InputStream, so wie du schon angefangen hast, den Wert auf der Java-Console im laufenden Programm eingeben lassen. Zur Eingabe wird hier eine System-Console über Runtime nicht benötigt.
Hey, danke für die schnelle antwort.
ich wollt aber, dass das programm mir ne cmd öffnet in der ich die verbleibenden minuten bis zum shutdown eingeben kann.
wenn es so net geht, wie dann?
Irgendwie sehe ich noch keinen Sinn in der ganzen Aktion...
Wenn du deinen Rechner herunterfahren möchtest, gib den Befehl doch einfach in eine Console oder in einer Batchdatei ein.
Der Befehl: shutdown -s -t 05
...fährt den Rechner nach einer Wartezeit von 5 Sekunden herunter.
Ist das ein Programm mit einem GUI? Oder warum der Umweg über Java?
Eine Batchdatei kann so aussehen:
Code:
rem * Shutdown.bat
@echo off
shutdown -s -t %1
Diese Zeilen schreibst du in eine Batchdatei und benennst sie, wie du möchtest.
Wenn du das System herunterfahren möchtest, rufst du deine Batchdatei auf und gibst z.B. in der Console ein:
:lol: gar keinen sinn!
aber ich hätts halt einfach gern mit java gemacht, denn ich wüsst gern wie ich n wert von der konsole in mein prog übergeben kann. das muss doch gehen!
aso, aber thx für die .bat. maybe feil ich da noch n bissl rum. so is es noch nicht ganz das wahre. ;-)
ja, danke erstmal!
das prog funktioniert auch, wenn ichs in eclipse laufen lasse. soweit war ich ja schon.
aber über die konsole gehts immer noch net.
"could not find main class".
hab mal ne .bat geschrieben. und das was die macht, müsste doch, auf gleichem weg, mit java möglich sein?!
Code:
@echo off
set /p zahl="Bitte verbleibende Minuten eingeben: "
@echo in %zahl% Minuten wird der Rechner runtergefahren!
set /a min=(%zahl%*60)
shutdown -s -t %min%
Hallo!? Das Programm IST auch auf der Console lauffähig. Du machst etwas falsch, willst aber nicht daran arbeiten, den Fehler zu finden. Stattdessen suchst du ständig neue Lösungen. Das von mir gepostete Programm ist voll funktiontüchtig.
Wie hast du denn versucht, das Programm zu starten?