java命令符,如何使用java程序运行命令提示符命令?

这是我第一次在这里发帖,所以我不确定该说什么/问什么.

无论如何,我正在尝试创建一个简单的

java程序,它运行来自

java程序的命令提示符命令,主要用于ping flood(ping flooding own).

这是我目前的代码

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);

}

我是java的新手,所以可能不会做我想做的事.

我想要它做的是我在文本字段中输入一个IP地址,并用“:”拆分它,然后在那之后分配数据包,例如

127.0.0.1:100

虽然现在当我尝试使用该ip和数据包数量时,它返回“null – 0”(来自exec方法),我甚至不确定它是否做了与ping相关的任何事情.

我想要完成的是正如我已经说过的那样,ping自己,然后输出我得到的任何响应,虽然我不知道这个代码是否做了与此相关的任何事情,我主要在编写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;

}

有人可以解释一下为什么我的代码不起作用,我希望它如何工作?请不要判断,正如我已经说过的,我对java编程很新.

编辑:这是我想要完成的一个快速“信息”解释.

>我输入一个IP地址以及我想发送多少个数据包.在这个解释中,我使用的是localhost ip和5个数据包.

>我开始攻击.在这一部分,我希望程序运行cmd prompt命令

ping 127.0.0.1 -t -n 5

127.0.0.1是我在程序中的文本字段中输入的ip,5是我在文本字段中放入的数据包数量.

>我开始攻击,所以这是命令提示符中应该发生的事情:

语言是芬兰语,但仍然是一样的.

这是我想要完成的基本解释,希望有人理解并可以帮助/说明为什么我的代码不起作用,或者正在工作但不能在eclipse控制台中打印正确的行.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值