2012-02-16 2 views
0

나는 프로토콜 핸들러의 edrawingsviewer 앱을 사용하여 파일을 여는 간단한 클래스를 가지고 있습니다. 다시 클릭하면 프로그램이 강제 종료 될 수 있습니까?명령 줄 인수로 Solidworks EDrawingsViewer 시작

이것은 내가 가지고있는 것입니다. 런타임 환경이 실행되기 때문에 작동하지 않는 이유가 있다고 생각합니다. 런타임 환경 호출이 작성되지 않는 한 명령 행을 통해 파일 이름을 시작하면 인수로 파일 이름을 지정하지 않는 것입니다.

rundll32를 사용하지 않고 파일 이름으로 edrawingsviewer를 시작하려면 어떻게해야합니까?

private void initBackButton() { 
     backButton = new JButton("BACK"); 
     backButton.setPreferredSize(BUTTONSIZE); 
     backButton.setMinimumSize(BUTTONSIZE); 
     backButton.setSize(BUTTONSIZE); 
     backButton.setMaximumSize(BUTTONSIZE); 
     backButton.setAlignmentX(0.0F); 
     backButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       System.out.println("checking for open processes"); 
       for (Process p : processList) { 
        if (p != null) { 
         p.destroy(); 
         System.out.println("killing process"); 
        } 
       } 
       setValue(backButton); 
      } 
     }); 
    } 

    private void addButtonToPanel(final File file) { 
     final JButton button = new JButton(); 
     button.setPreferredSize(BUTTONSIZE); 
     button.setSize(BUTTONSIZE); 
     button.setMinimumSize(BUTTONSIZE); 
     button.setMaximumSize(BUTTONSIZE); 
     button.setFont(FONT); 
     button.setText(file.getName().split(jobString)[1]); 
     button.setHorizontalTextPosition(SwingConstants.LEFT); 
     button.setHorizontalAlignment(SwingConstants.LEFT); 
     final List<Process> pl = this.processList; 
     button.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       try { 
        EDrawingDialog.openEDrawingForFileName(file.getName(), button, pl); 
       } catch (Exception ex) { 
        System.out.println("addButtonToPane()"+ex); 
       } 
      } 
     }); 
     buttonPanel.add(button); 
    } 
     public static void openEDrawingForFileName(String fileName, JButton b, List<Process> processList) { 
     try { 
      final Process process = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler \\\\xxx.xxx.x.xx\\www\\HMI\\POD EDRAWINGS\\" + fileName); 
      processList.add(process); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

답변

0

최종 처리 공정 = Runtime.getRuntime() 간부 ("은 Rundll32 url.dll, FileProtocolHandler"fileName에 +).;

관련 문제