1 @Override
2 public void run() {
3 StatusPanel.isRunning = true;
4 this.setName("ExecuteThread");
5
6 String exe = "python";
7 String command = "C:\\Users\\Administrator\\Desktop\\nfv.py";
8 String num1 = StatusPanel.targetTextField.getText();
9 String[] cmdArr = new String[] {exe,command,num1};
10 logger.info(exe+" "+command+" "+num1);
11 JProgressBar progressBar = StatusPanel.progressTotal;
12 Process process = null;
13 InputStream in=null;
14 try {
15 int rs = 0;
16 progressBar.setValue(0);
17 ProgressThread progressThread = new ProgressThread();
18 progressThread.start();
19 ProcessBuilder builder = new ProcessBuilder("python","C:\\Users\\Administrator\\Desktop\\nfv.py");
20 builder.redirectErrorStream(true);
21 process = builder.start();
22 in = process.getInputStream();
23 BufferedReader br = new BufferedReader(new InputStreamReader(in));
24 String output = null;
25
26 while (null != (output = br.readLine()))
27 {
28 logger.info(output);
29 }
30 rs = process.waitFor();
31 logger.info(String.valueOf(rs));
32
33
34 progressBar.setValue(100);
35 JOptionPane.showMessageDialog(null,"转换完成","信息",JOptionPane.INFORMATION_MESSAGE);
36 } catch (Exception e) {
37 progressBar.setValue(0);
38 JOptionPane.showMessageDialog(null,"转换失败","信息",JOptionPane.ERROR_MESSAGE);
39 logger.error(Utils.getStackMsg(e));
40 }finally {
41 StatusPanel.buttonStartNow.setEnabled(true);
42 StatusPanel.isRunning = false;
43 try {
44 in.close();
45 } catch (IOException e) {
46 e.printStackTrace();
47 }
48 }
49 }
1 @Override
2 public void run(){
3 this.setName("ProgressThread");
4 JProgressBar progressBar = StatusPanel.progressTotal;
5 while (progressBar.getValue() != 100) {
6 try {
7 JSONObject jsonTask =new JSONObject(Utils.readFile("C:\\Users\\Administrator\\Desktop\\task.json"));
8 JSONObject task = jsonTask.getJSONObject("default");
9 int progress = task.getInt("progress");
10 if (progress> progressBar.getValue()){
11 progressBar.setValue(progress);
12 }
13 Thread.sleep(1000);
14 } catch (Exception e) {
15 // logger.error(Utils.getStackMsg(e));
16 e.printStackTrace();
17 }
18
19 }
20 }