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