Zum Inhalt springen

Java cli exe ansteuern


Empfohlene Beiträge

Geschrieben

Hi,

ist es möglich durch Java eine command line interface gesteuerte exe anzusprechen?

Habe mir das so Gedacht : exe befindet sich im gleichem Ordner wie das Projekt(bluej) bzw in einer var ist per FileDialog der Pfad zur exe in Erfahrung gebrahct worden. Nun habe ich Methoden die mir jenachdem was actionperformed mir von gui gibt einen String zusammensetzen zb "--nd --ss" und möchte mit diesem dann die exe aufrufen und das übergeben. Ist das möglich? Wenn ja wie kann man es ungefähr implementieren?

Ich hab es mit

Runtime.getRuntime().exec("cmd.exe /c"+pfad+"-- nd --ss"); probiert wobei pfad ein String ist, mit zb. C:\Users\****\Desktop\Projektordner\***.exe . Leider wird die exe nicht gestartet.

Als Test hatte ich Runtime.getRuntime().exec("cmd /c"+"start excel.exe");}, was ohne Probleme klappte.

Würde mich über leicht erklärte Hilfe sehr freuen.

Geschrieben (bearbeitet)

Ok. mit Start klappts jetzt aber Bluej gibt mir bei :

Runtime.getRuntime().exec("cmd /c start "+pfad+" --a --b --c --output "D:\**.mkv" "D:\Quell.avs"")

eine Error der besagt es würde eine ) fehlen

Bearbeitet von siser
Geschrieben

Ich hab nur grob drübergeschaut, aber ich denke, Du musst noch die " escapen, die keine Stringbegrenzer sind. Das Escape-Zeichen ist "\". Ansonsten denkt Java natürlich, das ist der Ende des Strings und will, dass Du die Methode mit "(" abschließt.

Peter

Geschrieben

Stimmt das ging jetzt. hatte es mit ' probiert, was aber leider nicht richtig funktionierte.

Nun habe ich noch ein Problem. Ich öffne ja die exe mittels Runtime.getRuntime()exec ... nun verschwindet aber leider die aufgerufene cli sofort wieder wenn ein fehler auftritt. Ich hatte probiert mit /k das DosFenster offen zu halten, aber ich sehe es trotzdem nur ein paar Milisekunden. Gibts da eine Möglichkeit das offen zu halten? Versuche mit ImputStream und Errorstream den Fehler auszulesen brachten immer null.

try{
Process p=Runtime.getRuntime().exec("cmd /k start "+pfad+" "+parameter+" "+ziel+" "+quelle);
dann:
try{
p.waitFor();}
catch(InterruptedException ie){};
System.out.println( "Rückgabewert: " + p.exitValue());

oder:
final InputStream processOutput = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader( processOutput));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}

oder:


BufferedReader in = new BufferedReader (
new InputStreamReader (p.getInputStream()) );
int ch;
while( (ch = in.read()) != -1 ) {
System.out.println(ch);
}


oder:
Scanner s = new Scanner( p.getInputStream());
while (s.hasNext()) System.out.println(s.nextLine());
Scanner d = new Scanner( p.getErrorStream());
while (d.hasNext()) System.out.println(d.nextLine());[/PHP]

hatte ich versucht.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...