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, 4790 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
CMD cURL Access Token parsen (2)

Frage von maddig zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...