大家好,我正在为我的应用程序开发一个安装向导,我正在使用命令行解压缩实用程序来提取用户选择的目标目录中的应用程序特定文件。为了创建安装向导,我使用了 JFace 向导,当用户单击向导的完成按钮时,我正在执行以下命令以从 zip 文件中提取文件
runTime.exec( "unzip" + SWT.SPACE + "master.zip" + SWT.SPACE + "-d" + SWT.SPACE + "\"" + installationDirectory + "\"");
此命令行工作正常,所有文件都被提取。但我也想向用户显示一个消息对话框,说明应用程序已成功安装。以下是我用来执行向导的主要方法。
public void run() throws PropertiesNotFoundException {
display = new Display();
Shell shell = new Shell(display, SWT.TITLE
| SWT.BORDER | SWT.MIN);
try {
WizardDialog dlg = new WizardDialog(shell, new InstallationWizard());
dlg.open();
} catch (Exception e){
MessageDialog.openError(shell, "Error", e.getMessage());
}
}
public static void main(String[] args) throws PropertiesNotFoundException {
new LaunchWizard().run();
if(DataBean.getInstance().isFinishPressed()){
MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Success", "The QTL is successfully installed.");
}
}
问题是当我按下向导的完成按钮并出现成功消息对话框时,除非该消息对话框没有关闭,否则所有文件都没有被提取。我通过eclipse ide启动这个应用程序,除非退出应用程序,否则文件没有被正确提取,如果我从eclipse手动终止应用程序而不是关闭消息对话框,文件被提取。对此有任何帮助。谢谢