tracert in java einbinden

tameck

Erfahrenes Mitglied
hey ihr,

hab mal wieder das problem das ich en cmd befehl in java einbinden muss odr soll :)
habs so versucht wie ich es auch mit shutdoen oder net send machen würde nur mit tracert funktioniert der spaß nich ...
hier mien quelltext:

Code:
package konsole;

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;

import javax.swing.*;

public class Konsole extends JFrame implements ActionListener {
	
	String ipaddresse;
	
	private JPanel gesamt = new JPanel();
	private JPanel oben = new JPanel();
	private JPanel unten = new JPanel();
	private JTextField ipeingabe = new JTextField(10);
	private JButton suche = new JButton("Suche");
	private JTextArea konsole = new JTextArea(20,20);
	
	public Konsole(String title){
		
		super (title);
		Container c = getContentPane();
		
		gesamt.setLayout(new GridLayout(2,1));
		gesamt.add(oben);
		gesamt.add(unten);
		
		
		oben.add(ipeingabe);
		oben.add(suche);
		
		
		unten.add(konsole);
		
		c.add(gesamt);
		
		suche.addActionListener(this);
		
		addWindowListener (new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		
		setSize(500,250);
		setVisible(true);
		
	}
	public void actionPerformed(ActionEvent e){
		
		if(e.getSource()== suche){
			
			System.out.println("Suche");
			
			try{
			ipaddresse = ipeingabe.getText();
			String cmdBefehl = "tracert "+ipaddresse;
			Runtime.getRuntime().exec(""+cmdBefehl);
			
			System.out.println(ipaddresse);
			
			}catch (IOException e1){
				
				e1.printStackTrace();
				
			}
			
		}
		
	}
	
	public static void main(String args[]){
		
		new Konsole("Konsole");
		
	}

}

schonmal danke im vorraus :)
lg tameck
 
Wenn du tracert in der Eingabeaufforderung eingibst, wird doch was ausgegeben. Diese Ausgabe ignorierst du komplett. Du führst den Befehl einfach nur aus.

Schau mal hier.
Java:
package de.tutorials.konsole;

import java.util.Scanner;

public class ProcessReaderExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ProcessBuilder builder = new ProcessBuilder(new String[] { "tracert",
				 "localhost" }).redirectErrorStream(true);

		try {
			Process process = builder.start();
			Scanner scanner = new Scanner(process.getInputStream());
			while (scanner.hasNextLine()) {
				System.out.println(scanner.nextLine());
			}
			System.out.println(process.waitFor());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
 
hey danke für deine hilfe hast mir sehr geholfen aber eine frage hätte ich noch kann man eine variable in den process builder einfügen wenn ja wie
 
warte ich poste dir mal meinen quelltext
Code:
package tracert;

import java.util.Scanner;

public class Ping {

	static String name = "e51a0w4d";
	
	public static void main(String[] args) {
		
		for(int i=1;i<=3;i++){
	
	        ProcessBuilder builder = new ProcessBuilder(new String[] {"ping","89.0.36.5","-i","3" }).redirectErrorStream(true);
	        
	
	 System.out.println(i);
	
	        try {
	
	            Process process = builder.start();
	
	            Scanner scanner = new Scanner(process.getInputStream());
	
	            while (scanner.hasNextLine()) {
	
	                System.out.println(scanner.nextLine());
	
	            }
	
	            System.out.println(process.waitFor());
	
	        } catch (Exception e) {
	
	            e.printStackTrace();
	            
	        }
	
	        }
	
	}

}

bei ping das -i steht für ttl time to life also das gleiche in etwa wie bei bei pathping oder tracert ich will das drei mal mit einem verschiedenen ttl gepingt wird ...
 

Neue Beiträge

Zurück