Java调用批处理实现任务管理器

 

 

 
  Java调用批处理实现任务管理器


任务管理器完成图

 

5.1 具体代码如下:

1.客户端代码

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

 

 

class Frame

{

       private JFrame f;

       public static JTextArea ta;

       JButton bt =new JButton();

       Connect c;

       public Frame()

       {

              init();     

              c=new Connect();

             

       }

 

       private void init()

       {

 

       f=new JFrame("窗口");

       BorderLayout blayout=new BorderLayout();

       f.setLayout(blayout);

       f.setBounds(500,300,300,300);

       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      

       //文本区滚动条

       JScrollPane sp=new JScrollPane();

       ta=new JTextArea();

       sp.setViewportView(ta);

       f.add(sp,BorderLayout.CENTER);

      

       //容器里添加文本框和按钮

       JPanel p=new JPanel();

       bt.setText("report");

       p.add(bt);

       f.add(p,BorderLayout.SOUTH);

 

       //添加监听器

       ActionListener bal=new AListener();//请求

       bt.addActionListener(bal);

      

      

      

 

       //设置显示窗口

       f.setVisible(true);

       }

       class  AListener implements ActionListener

       {

              public void actionPerformed(ActionEvent e)

              {

                           

                     if(e.getSource()==bt)

                     {

                            Frame.ta.setText(" ");

                            c.line="rpt";

                     }

                     c.sendAcction();           

              }    

 

       }    

 

}

 

class Connect

{

       public String line;

       public static String str;

       static BufferedReader cin;

       PrintWriter cout;

       static BufferedReader cinr;

       PrintWriter coutr;

       public Connect()

       {

              try{

                     Socket  server=new Socket("127.0.0.1",4700);//建立连接

                     cin =new BufferedReader(new InputStreamReader(server.getInputStream()));//输入流(服务器向客户端)

                     cout =new PrintWriter(server.getOutputStream());//输出流

                                  

              }catch(Exception e){

                     System.out.println("Erro"+e);

                     }

             

       }

      

       void sendAcction()

       {

              try{

                            cout.println(line);

                            cout.flush();          

                            while(true)

                            {

                                   str=cin.readLine();               

                                   Frame.ta.append(str+'\n');                          

                                   if(str.equals(" "))          

                                   {

                                          break;    

                                   }

                            }

                           

                                  

              }catch(Exception e){

                     System.out.println("Erro"+e);

                     }

       }

}

public class Client

{

       public static void main(String args[])

       {

              Frame f=new Frame();

       }

 

}

2.服务器代码

import java.net.*;

import java.io.*;

 

 

class  Board extends Thread

{

       private Socket socket;

       public Board(Socket socket)

       {

              this.socket=socket;

       }

      

       public void run()

       {

              try{

                     String line;

                     String line1;

                     String b=new String("rpt");

                     BufferedReader sin =new BufferedReader(new InputStreamReader(socket.getInputStream()));//输入流,将socket输入数据封装到BufferReader里可以提高速率减少访问次数

                     PrintWriter sout =new PrintWriter(socket.getOutputStream());//输出流

      

                     while(true)

                     {    

                            line=sin.readLine();

                           

                                   if(line.equals(b))

                                   {

                                         

                                          Process process = Runtime.getRuntime().exec("C:\\Users\\Administrator\\Desktop\\insave.bat"); //执行批处理文件

                                          BufferedReader in=new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\file.txt"));

                                          String str;

                                          str=in.readLine();

                                          while((str=in.readLine())!=null)

                                          {

                                                 str=str+'\n';

                                                 sout.println(str);

                                                 sout.flush();   

                                          }

                                          sout.println(" ");

                                          sout.flush();

                                                

                                   }

                                                

                     }                  

                    

              }catch(Exception e){

                                          System.out.println(e.getMessage());

                     }    

       }

 

}

 

public class Server

{

       public static void main(String args[])

       {

              ServerSocket server =null;

              try{

                     server=new ServerSocket(4700);

              }

              catch(IOException e){

                     System.out.println("can't listen to:"+e);

              }

      

              Socket socket =null;

              while(true)

              {

                     try{

                            socket= server.accept();

                     }catch(IOException e){

                            System.out.println("Error:"+e);

                     }

                     new Board(socket).start();//创建线程

              }

       }

}

3.批处理代码

%1 start mshta vbscript:createobject("wscript.shell").run("""%~0"" ::",0)(window.close)&&exit

echo.

tasklist>file.txt

pause