Comment utiliser un programme en java pour exécuter les commandes d'invite de commandes?

c'est ma première fois de poster ici, donc je ne suis pas vraiment sûr de ce que pour dire/demander.
De toute façon, je suis en train de faire un simple programme java qui s'exécute invite de commandes à partir du programme java, principalement utilisé pour l'inondation de ping (ping inondations moi-même).

Voici mon code actuel

public class Core extends JFrame {
JTextField ipTextField;
int packets = 0;
boolean running = false;
public Core() {
super("Fatique");
Container container = getContentPane();
JButton bAttack = new JButton("Start Attack");
JButton bStop = new JButton("Stop Attack");
JPanel jPanel = new JPanel();
container.setLayout(new FlowLayout());
ipTextField = new JTextField("IP Address", 30);
container.add(ipTextField);
bAttack.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String input = ipTextField.getText();
String[] value = input.split(":");
int amountOfPackets = Integer.parseInt(value[1]);
exec("cmd /c" + input + " -t -n " + amountOfPackets);
running = true;
}
});
bStop.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
stop();
}
});
if(!running) {
jPanel.add(bAttack);
} else {
jPanel.add(bStop);
}
add(jPanel);
}  
public void exec(String cmd) {
try {
Process p = Runtime.getRuntime().exec(cmd);
System.out.println(getOutput(p) + " - " + getPacketsSent());
} catch (IOException e) {
e.printStackTrace();
}
}
public String getOutput(Process p) {
String output = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
output = line;
packets++;
}
return output;
} catch (IOException e) {
System.err.println(e.getStackTrace());
}
return null;
}
public int getPacketsSent() {
return packets;
}
public void stop() {
exec("cmd /c break");
running = false;
}
public static void main(String[] args) {  
Core c = new Core();
c.setSize(500, 300);
c.setVisible(true);
c.setResizable(false);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setLocationRelativeTo(null);
}

Je suis assez nouveau à java, de sorte que ne pourrait pas faire ce que je veux faire.
Ce que je veux faire c'est que je entrer une adresse ip dans le champ, et le diviser par ":", et après que le nombre de paquets, par exemple

127.0.0.1:100

Bien que maintenant, quand j'essaye d'utiliser la propriété intellectuelle et de la quantité de paquet, il retourne "null " 0" (à partir de la méthode exec), et je ne suis même pas sûr si elle a fait tout ce qui est lié à la commande ping.

Ce que je suis en train d'accomplir, c'est comme je l'ai déjà dit, ping flood moi-même, et ensuite de sortie ce que je reçois comme réponse, mais je n'ai aucune idée si ce code n'est rien encore par rapport à cela, j'utilise principalement la logique lors du codage java.

 public String getOutput(Process p) {
String output = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
output = line;
packets++;
}
return output;
} catch (IOException e) {
System.err.println(e.getStackTrace());
}
return null;
}

Quelqu'un pourrait-il m'expliquer pourquoi mon code ne fonctionne pas comment je veux qu'il fonctionne? Merci de ne pas juger, comme je l'ai déjà dit, je suis assez nouveau à la programmation java.

EDIT: Voici un rapide "informatif", explication de ce que je suis en train d'accomplir.

  1. Je tape une adresse ip et le nombre de paquets que je veux envoyer. Dans cette explication, je suis en utilisant ip localhost, et 5 paquets.
    Comment utiliser un programme en java pour exécuter les commandes d'invite de commandes?
  2. J'ai lancer l'attaque. Dans cette partie, je veux que le programme à exécuter cmd invite de commande

    ping 127.0.0.1 -t -n 5

    127.0.0.1 étant l'adresse ip que j'ai mis dans le textfield dans mon programme, et le 5 est le nombre de paquets que j'ai mis dans le textfield.

  3. J'ai commencé l'attaque, c'est ce qui devrait se produire dans l'invite de commande:
    Comment utiliser un programme en java pour exécuter les commandes d'invite de commandes?

    La langue est le finnois, mais toujours la même chose.

    C'est l'explication fondamentale de ce que je suis en train d'accomplir, j'espère que quelqu'un a compris et peut aider à/dire pourquoi mon code ne fonctionne pas, ou travailler en mais pas d'impression les lignes appropriées dans eclipse console.

Essayez d'imprimer de la sortie brute du processus de flux d'entrée.
Toujours null, cependant, je probablement ne pas faire ce que vous m'avez dit de faire. Système..println(en.readLine()); c'est ce Que j'ai essayé, maintenant, il retourne "null null - 1"

OriginalL'auteur Woobie | 2013-04-06