Ping über CMD, Umweg über Batch Datei sparen.

Status
Nicht offen für weitere Antworten.

weeego

Mitglied
Hallo liebe Forum-User,

ich habe jetzt schon stundenlang das Netz durchstöbert und auch eure Forensuche benutzt, doch leider habe ich nicht die passende Lösung gefunden.

Ich versuche in einem JAVA-Programm ein PING-Befehl abzusetzen. Das gelingt mir bisher auf verschiedene Weisen, aber nicht so, wie ich mir das wünsche ;)

Hier der Quellcode(das wichtige Teilstück):

Java:
public void actionPerformed(ActionEvent e)
{
  if (e.getSource() == button1)
    {
     try {
        Process child;
        String[] cmds = new String[]{"cmd", "/C",  "start D:\\Programme\\IP\\ping1.bat\""};
        child = Runtime.getRuntime().exec(cmds);
     }

      catch (IOException f) {
        f.printStackTrace();
      }
        }

} // Ende actionPerformed

Inhalt der BATCH-Datei:

Code:
@echo off

ping 192.168.1.1 -t


So der Status Quo....ich drücke also auf einen Button, der öffnet die .bat und diese öffnet ein CMD-Fenster, welches den PING ausführt. Ich finde das mehr als umständlich ;) Kann ich nicht direkt aus JAVA ein CMD aufrufen und dort einen belibiegen PING-Befehl absetzen?

So hätte man dann die Möglichkeit ein Eingabefeld zu erstellen, in die man die IP einträgt und dann an diese Adresse ein PING gestartet wird.

Wäre toll, wenn ihr mir helfen könnten!
Einen schönen Tag.
 

weeego

Mitglied
Danke für die schnelle Antwort.

Aber genrell würde ich einen "echten" PING dem InetAdress->isreachable() vorziehen. Das Progrämmchen wird nur unter Windows eingesetzt, deswegen ist die Plattformunabhängigkeit nicht so ein Thema^^
 
Zuletzt bearbeitet:

sparrow

Top Contributor
Du kannst das was der PING-Befehl macht natürlich auch in Java direkt schreiben.
Das wärst du sogar unabhängig von Windows.
 
T

tuxedo

Gast
Ping setzt aber unterhalb von TCP und UDP an (ICMP). Und in Java hat man da keinen direkten Zugriff. Ergo geht es nicht ohne JNI und Co.

Aber meine Beispielimplementierung am Ende des verlinkten Beitrags kommt dem Endergebnis schon ziemlich nahe. Konnte, sofern ein bekannter, offener Port da war keine signifikanten Zeitunterschiede zwischen meinem Ping-Ergebnis und einem richtigen Ping feststellen.

- Alex
 

ARadauer

Top Contributor
Java:
 String cmd = "cmd /c ping 192.168.1.1 -t";
		      Process p = Runtime.getRuntime().exec(cmd);

		      InputStream is =  p.getInputStream();
		      BufferedReader b = new BufferedReader(new InputStreamReader(is));
		      String line = null;
		      while((line = b.readLine())!= null){
		         System.out.println(line);        
		      }
warum nicht einfach so?
 

weeego

Mitglied
Java:
 String cmd = "cmd /c ping 192.168.1.1 -t";
		      Process p = Runtime.getRuntime().exec(cmd);

		      InputStream is =  p.getInputStream();
		      BufferedReader b = new BufferedReader(new InputStreamReader(is));
		      String line = null;
		      while((line = b.readLine())!= null){
		         System.out.println(line);        
		      }
warum nicht einfach so?

So eine ähnliche Lösung hatte ich auch schon...allerdings, hätte ich die ausgabe des in JAVA aufgerufenen PING-Befehls gerne wirklich in dem CMD-Prompt und nicht über System.out.println();

Ist das möglich?
 
S

SlaterB

Gast
eine graphische Oberfläche mit JTextArea usw. ist dir nicht gelegen?
 

weeego

Mitglied
Java:
try {
        String cmd = "cmd /c ping 192.168.1.1 -t";
              Process p = Runtime.getRuntime().exec(cmd);

              InputStream is =  p.getInputStream();
              BufferedReader b = new BufferedReader(new InputStreamReader(is));
              String line = null;
              while((line = b.readLine())!= null){
              
              JTextArea tA = new JTextArea(4, 20);
              tA.setEditable(false);
              add (new JScrollPane(tA));
              tA.append("Test, Test");
              tA.setCaretPosition(0);

              }

     }

Leider passiert wenn ich jetzt auf den Button drücke gar nichts. Woran liegt das?
 

weeego

Mitglied
Am liebsten wäre mir eine wenn der PING dann ganz normal in dem CMD-Prompt angezeigt wird.

Auf gar keinen Fall will ich eine Ausgabe in der Konsole.

Und für alternative Möglichkeiten (wie z.B. JTextArea) bin ich offen.
 

Atze

Top Contributor
was ist denn hier der unterschied zwischen cmd-promt und konsole? (wir reden hier nicht von der eclipse console, oder?) ;)
 

weeego

Mitglied
Konsole -> das im JavEditor
CMD-Prompt -> das von Windows

Entschuldige, dass ich mich nich ganz eindeutig ausgedrückt habe.
 

Atze

Top Contributor
wenn du das programm über die cmd startest, solltest du da doch über sysout die ausgabe auf der cmd haben
 
T

tuxedo

Gast
Ich denke er will, dass wenn er den ping startet, eine "Dosbox" aufgeht in der der Pipng ausgeführt wird. Das hat er bis jetzt schon mit seinem ersten Versuch erreicht, allerdings nur über den "Umweg" mit den Batch-File.

Der Weg/Ansatz war also schon richtig, nur hat die Befehlsfolge die an Runtime übergeben wird nicht gepasst.

Tipp:

Mach ne Dosbox auf und versuche dort den Befehl zu finden mit dem der Ping in einer separaten Dosbox ausgeführt wird. Und das führst du dann in Java aus.

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
MaxG. Netzwerk Ping falsches ergebnis Netzwerkprogrammierung 7
MaxG. Ping in JTextArea anzeigen Netzwerkprogrammierung 11
lumo Ping implementierung in TCP mit fragen... Netzwerkprogrammierung 7
Dit_ UDP Port testen | Ping Google? Netzwerkprogrammierung 7
M Ping mehrerer Ports aus int[] ohne for-Schleifendurchlauf Netzwerkprogrammierung 11
U Ping mit isReachable realisieren ? Netzwerkprogrammierung 5
E PC mit Ping überwachen Netzwerkprogrammierung 2
A Ping unter Java Netzwerkprogrammierung 5
S Eigenen Ping Befehl programmieren? Netzwerkprogrammierung 5
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
T VPN-Verbindung über Java Netzwerkprogrammierung 4
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
A Computer über Internet verbinden Netzwerkprogrammierung 12
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
E Java über Socket ins Internet? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5
M Mail über Exchange versenden Netzwerkprogrammierung 13
F C/S über HTTPS Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
A HTTP Binärdaten über PHP-Skript in Datenbank schreiben bzw auslesen Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P FTP isFile() über FTP Netzwerkprogrammierung 3
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
A UCP Connection über Proxy möglich? Netzwerkprogrammierung 7
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
F Char über Netzwerk senden Netzwerkprogrammierung 6
S HTTP Login mit CAS Authentisierung über SSL Netzwerkprogrammierung 2
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
M Socket Datei über Socket versenden Netzwerkprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben