Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Fehlermeldung bei Befehlen eines Buttons in Verbindung mit cmd.exe

Frage Entwicklung Java

Mitglied: basti92

basti92 (Level 1) - Jetzt verbinden

29.01.2010 um 09:41 Uhr, 4793 Aufrufe, 4 Kommentare

Hallo Leute,
hab ein Problem mit nem Java-Code.
Fall: Ich will ein kleines Fensterprogramm mit Buttons (Grundcode vorhanden und läuft), nur wenn ich den Buttons den Befehl gebe eine cmd.exe zu öffnen, einen Befehl auszuführen und eine Ausgabe in dem Fenster (Textfeld im Fenster) zu machen, zeigt er einen Fehler, der ohne die Buttonzuweisung nicht kommt.

public static void main(String[] args) throws Exception{
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "ipconfig", "/all");
Process process = processBuilder.start();

Scanner scanner = new Scanner(process.getInputStream());
while(scanner.hasNextLine()){
System.out.println(scanner.nextLine());
}

scanner.close();
System.out.println(process.waitFor());

}

Also der Code greift zu auf cmd.exe und führt den Befehl "ipconfig /all" aus.
Diesen Code möchte einen Button zuweisen, also das wenn ich auf den Button klicke das er das macht.

ip.addActionListener(new ActionListener() {

@override
public void actionPerformed(ActionEvent arg0) {

ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "ipconfig", "/all");
Process process = processBuilder.start();
Scanner scanner = new Scanner(process.getInputStream());
while(scanner.hasNextLine()){
lm.addElement(scanner.nextLine());

}
scanner.close();
}});

Das einzigste wo er einen Fehler hat ist bei processBuilder.start() des untergringelt er und sagt:

Unhandled exception type IOException.

Könnt ihr mir sagen warum der den Fehler schmeißt bzw. wie ich den rausbekomm sodass es läuft? Wenn ihr den gesamten Code braucht bitte melden.

Vielen dank im Vorraus

Gruß

Basti
Mitglied: 76109
29.01.2010 um 10:27 Uhr
Hallo basti92!

Java gehört nicht zu meinem Fachgebiet, aber die CmdLine sollte sicherlich nur aus einem String bestehen:
...ProcessBuilder("cmd.exe /c ipconfig /all");

Gruß Dieter
Bitte warten ..
Mitglied: basti92
29.01.2010 um 10:34 Uhr
Hallo Dieter,

hab ich mir auch gedacht, habe einen Kollegen von mir gefragt und der hat gemeint das man das öfters so macht um Leerzeichen (wegen Befehlen) und wegen Leerzeichen(im Namen) unterscheiden kann.

Danke für deine Antwort. Aber es funktionier auch ohne den Einzelteilen nicht.
Bitte warten ..
Mitglied: Biber
29.01.2010 um 10:41 Uhr
Moin basti92, moin didi1954,

Zitat von 76109:
Java gehört nicht zu meinem Fachgebiet, aber die CmdLine sollte sicherlich nur aus einem String bestehen:
...ProcessBuilder("cmd.exe ipconfig /all");

Nein, das würde schon passen, weil ProcessBuilder zwei mögliche Constructors hat; einen für eine "Aufrufstring", einen für eine "Aufruf-Liste von Argumenten".

// ist also so definiert: 
public ProcessBuilder(List command) 
public ProcessBuilder(String... command)
Ich würde allerdings bei einem "IPConfig /all"-Aufruf auch die String-Constructor-Variante nehmen.*gg

Eine IOException sollte eigentlich nur geworfen werden, wenn
  • die Rechte fehlen
  • "richtige" IO-Probleme auftreten (Sektor verstrahlt)
  • oder die Umgebung bzw. die aufzurufende Datei nicht gefinden wird.

Ich tippe auf Letzteres.
@basti92
Warum gehst du über so viele Ästlein und Zweiglein und rufst die "ipconfig.exe" über die "cmd.exe"?? Warum nicht direkt?
Falls es irgendeinen ästhetischen Hintergrund haben sollte oder einfach mehr Kohle bringt oder so bleiben soll:
- dann mal probeweise den Pfad der CMD.exe explizit mit angeben ("C:\\Windows\\cmd.exe" oder so reicht zum Testen)

Grüße
Biber
Bitte warten ..
Mitglied: Marco123
29.01.2010 um 18:53 Uhr
Hilft dir die Klasse "Runtime" dabei ?

Runtime rt=Runtime.getRuntime();
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Tools
Suche Batch Scheduler (.bat .cmd .exe) (8)

Frage von hf1965 zum Thema Windows Tools ...

Batch & Shell
Snmpwalk.exe unter Windows10 nicht lauffähig (5)

Frage von KayJay zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (18)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Grafikkarten & Monitore
Neue Graifkkarte - kein Bild (10)

Frage von bestelitt zum Thema Grafikkarten & Monitore ...

Exchange Server
gelöst Exchange 2013 - Kontakte aus CSV importieren (9)

Frage von hesper zum Thema Exchange Server ...