Ausführen von CMD Befehlen

Hallo,
ich möchte in meinem Programm eine HTML Datei öffnen. Unter Linux funktioniert der Befehl wunderbar:
Java:
Runtime.getRuntime().exec( <Befehl> );
In Windows möche ich das auch machen:
Java:
Runtime.getRuntime().exec("start " + pathname + filename);
Wenn ichs mir im Debugging anschaue, dann siehts so aus:
"start C:/Users/Tommy/Comunio/Comunio_Kader.html"
Der Befehl funktioniert manuell in der CMD, bei Java bekomme ich aber einen Fehler:
Exception in thread "main" java.io.IOException: Cannot run program "start": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at comuniomonitor.ComunioMonitor.writeTable(ComunioMonitor.java:352)
at comuniomonitor.ComunioMonitor.main(ComunioMonitor.java:77)
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 5 more
Kann mir jemand helfen?
 

Robat

Top Contributor
Wenn du den "Default-Browser" öffnen willst kannst du nicht nur "start" schreiben. Du musst noch ein "cmd /c " davor setzen.
Für eine Browser deiner Wahl schreib einfach "browsername.exe File".

Also als kleines Beispiel:

Java:
Runtime.getRuntime().exec("cmd /c start D:Mein/Pfad/Zu/Der/Seite/index.html");
Runtime.getRuntime().exec("chrome.exe D:/Mein/Pfad/Zu/Der/Seite/index.html");

Gruß Robert :)
 

BenBu

Mitglied
Hallo, Ich habe diesen Beitrag gefunden, weil ich auch gern einige Programme mittels Java --> CMD steuern möchte. Dazu habe ich den Code genutzt und ihn in eine Klasse gepackt. Aus dieser möchte ich nun Objekte erzeugen und mit der Methode start() gern den cmd Befehl starten. Leider bekome ich in meiner Main einen Fehler, wenn ich start() ausführen möchte. Kann mi rjemand sagen, was ich vergessen hab?

Hier mein Main:
Java:
package Program;
import java.io.*;

public class Main {
    public static void main(String[] args)  {
        
        Functions.CMDcontroll c = new Functions.CMDcontroll();
        c.start();
        

    }
}


Und hier die Klasse für die CMDs:
Java:
package Functions;

import java.io.IOException;

public class CMDcontroll {
    private String program, param1, param2, param3, combinedString;
    
    
    public CMDcontroll(){
        combinedString = "cmd /c start";
        
    }
    
    public CMDcontroll(String prog, String p1, String p2, String p3){
        program = prog;
        param1 = p1;
        param1 = p2;
        param1 = p3;
        
        combinedString = prog +" "+ p1 +" "+ p2 +" "+ p3;
    }

    
    public void start() throws IOException ,InterruptedException{
        
        Runtime.getRuntime().exec(combinedString);
        //Runtime.getRuntime().exec("programm.exe Parameter1 Parameter2");
        
    }
}

bei c.start(); bekomme ich den Fehler:
Multiple markers at this line
- Unhandled exception type InterruptedException
- Unhandled exception type IOException

Leider kann ich den noch nicht wirklich interpretieren.
Grüße
 

KonradN

Super-Moderator
Mitarbeiter
Wenn eine Methode checked Exceptions hat, dann musst Du diese beim Aufruf entweder fangen oder die Methode, die den Aufruf macht, muss ebenfalls diese checked Exceptions werfen.

Also den Start Aufruf in try/catch verpacken oder der Main Methode noch das throws … geben.
 

BenBu

Mitglied
Wenn eine Methode checked Exceptions hat, dann musst Du diese beim Aufruf entweder fangen oder die Methode, die den Aufruf macht, muss ebenfalls diese checked Exceptions werfen.

Also den Start Aufruf in try/catch verpacken oder der Main Methode noch das throws … geben.
Danke. Ich dachte, da ich throws bereits in der Klasse selbst hatt genügt das.
Wieder etwas dazu gelernt. DANKE
 

Jw456

Top Contributor

mihe7

Top Contributor
Wenn du damit eine Befehl zusammen setzen willst.
Dann sollte er einen StringJoiner bzw. String.join verwenden :)

Java:
combineString = String.join(" ", prog, p1, p2, p3);

Davon abgesehen, braucht es das im Zusammenhang mit Prozessen gar nicht. Wie @Robert Zenz angemerkt hat, bietet sich z. B. ProcessBuilder an:
Java:
ProcessBuilder pb = new ProcessBuilder(prog, p1, p2, p3);
 

KonradN

Super-Moderator
Mitarbeiter
Hier Überschreibtst du ja deinen String
Nur um hier keine Missverständnisse aufkommen zu lassen: Er überschreibt keinen String. Er hat zwei Konstruktoren und in jedem wird combinedString initialisiert. Es gibt aber nie ein Überschreiben des Wertes in combinedString, da entweder der eine oder der andere Konstruktor aufgerufen wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
S Buttons nacheinander ausführen Allgemeine Java-Themen 2
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
J Jar-Datei ausführen Allgemeine Java-Themen 7
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
F jar File ausführen Allgemeine Java-Themen 14
Hatsi09 Jar datei ausführen verursacht NumberFormatException Allgemeine Java-Themen 9
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
J CMD Befehl in Java Consolenprogramm ausführen Allgemeine Java-Themen 6
L Python in Java ausführen Allgemeine Java-Themen 4
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
N Script mit Java ausführen Allgemeine Java-Themen 21
F Java automatisch ausführen Allgemeine Java-Themen 3
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
D Verknüpfung mit Java Ausführen Allgemeine Java-Themen 1
H jar-Datei mit java.exe anstatt mit javaw.exe ausführen Allgemeine Java-Themen 9
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
M Classpath Java App ausführen Allgemeine Java-Themen 2
Javafan01 .sh datei in Java ausführen Allgemeine Java-Themen 1
Javafan01 Ausführen Allgemeine Java-Themen 1
das_leon Hotkey ausführen Allgemeine Java-Themen 1
A Input/Output VBS-Datein mit Java Ausführen Allgemeine Java-Themen 2
K Server mieten, Berechnungen darauf ausführen Allgemeine Java-Themen 14
L HTML Formular ausführen Allgemeine Java-Themen 1
H .Sh Datei ausführen programmieren Allgemeine Java-Themen 5
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
M *.class Files ausführen Allgemeine Java-Themen 2
C Ausführen einer .JAR Datei Allgemeine Java-Themen 5
J Batch datei öffnen und als Admin ausführen Allgemeine Java-Themen 43
J Ältere applets ausführen? Allgemeine Java-Themen 0
A Linux bash script ausführen Allgemeine Java-Themen 16
Viktim Bash Script in Java ausführen Allgemeine Java-Themen 6
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
T Programme ausführen.. Allgemeine Java-Themen 3
H Java Anwendungen ausführen Allgemeine Java-Themen 3
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
M Klasse in separaten Thread ausführen.Wie genau? Allgemeine Java-Themen 2
G Threads Methode nebenbei ausführen, Status verarbeiten Allgemeine Java-Themen 4
Fischkralle Ausführen von fremden Code Allgemeine Java-Themen 14
E JCuda-0.6.5 Probleme beim ausführen der Datei Allgemeine Java-Themen 0
2 jede Stunde Methode ausführen Allgemeine Java-Themen 8
buggy84 Ausführen einer Batch mit Parameterübergabe funktioniert nicht richtig Allgemeine Java-Themen 18
T Git-Befehle mit Java ausführen Allgemeine Java-Themen 5
Neumi5694 Datei mit erhöhten Rechten ausführen Allgemeine Java-Themen 2
Bananabert Java mit bestimmter GPU ausführen Allgemeine Java-Themen 7
F Mencoder unter Java Ausführen Allgemeine Java-Themen 0
L Jar-Datei in Web ausführen Allgemeine Java-Themen 1
U CMD Befehle als Admin ausführen Allgemeine Java-Themen 6
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
D swingset3.jnlp lässt sich nicht ausführen Allgemeine Java-Themen 2
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
G Umgebungsvariable Jar im Netzlaufverk ausführen Allgemeine Java-Themen 4
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
F paintComponent() nicht automatisch ausführen? Allgemeine Java-Themen 5
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
M Java Anwendung ausführen Allgemeine Java-Themen 5
J Code ausführen bei JVM-Zerstörung Allgemeine Java-Themen 15
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
Hoppelmann Befehlszeile an bestimmtem Ort ausführen Allgemeine Java-Themen 2
M Befehl in Runtime ausführen der Eingabe benötigt Allgemeine Java-Themen 3
C Rechnung genau 8 mal ausführen Allgemeine Java-Themen 5
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S NoSuchMethodError beim Ausführen einer C Methode über JNI Allgemeine Java-Themen 5
C Umgebungsvariable Java-Datei in anderem Verzeichnis ausführen Allgemeine Java-Themen 2
F Jar auf Netzlaufwerk ausführen Allgemeine Java-Themen 2
Gossi Java Code in einer GUI eingeben und ausführen? Allgemeine Java-Themen 2
D Code später ausführen Allgemeine Java-Themen 8
Wirago (runnable) JAR-File ausführen Allgemeine Java-Themen 6
S Fehler beim ausführen des HTML Allgemeine Java-Themen 7
T jar Archiv auf Server ausführen Allgemeine Java-Themen 3
J CMD direkt in Java ausführen Allgemeine Java-Themen 11
B UNIX Shell befehl über JavaCode ausführen Allgemeine Java-Themen 19
J Threads Methode in Mainthread ausführen Allgemeine Java-Themen 5
A Jasperreports automatisch ausführen lassen Allgemeine Java-Themen 5
P jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 5
T Junit-Tests in Java Klasse ausführen Allgemeine Java-Themen 26
R Jar Datei ausführen Allgemeine Java-Themen 7
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
J Java Datei ausführen Allgemeine Java-Themen 8
DStrohma Kommandozeilen-Programm unendlich lang ausführen Allgemeine Java-Themen 13
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
R Methoden in einem Thread unterschiedlich oft ausführen Allgemeine Java-Themen 4
E Externes bat sichtbar ausführen Allgemeine Java-Themen 4
M in Abhänigkeit vom FileFilter, externes Programm ausführen Allgemeine Java-Themen 12
C ausgelesene SQL-Statements ausführen Allgemeine Java-Themen 21
L Programm um eine bestimmte Uhrzeit ausführen Allgemeine Java-Themen 4
Q .exe ausführen in Ort Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben