【发布时间】:2015-06-08 13:15:40
【问题描述】:
这是我的用例,以便您了解我为什么需要卸载程序。
我必须使用文件选择器修改屏幕中选择的 WAR 文件的内容,先用数据库备份它,然后修改数据库,然后再修改 WAR。
WAR 和数据库的修改就像一个魅力,备份也是如此,但是我需要给最终用户一个可能性,恢复以前的 WAR 和数据库就像他修改它们一样容易。
为此,我创建了一些将使用备份文件和安装程序运行时变量的操作,但在执行卸载程序时显示错误,说它无法加载主类。
我只是不使用任何启动器,因为实际上我并没有尝试安装任何软件,只是进行一些文件操作。
所以我的问题是:
- 是否可以通过卸载恢复备份文件?
- 是否可以在其他应用程序中使用安装程序变量?
编辑:
在卸载程序中,我需要使用安装程序中的表单组件变量,以及我在安装程序中使用“设置变量”操作创建的其他变量,为此我必须选中“注册到响应文件”复选框。
然后在卸载程序的启动节点中,在“请求权限”操作之后,添加“加载响应文件”操作,并将“文件”文本字段留空,以便加载
安装程序创建的默认响应文件。
然后我在卸载程序的后续操作中调用这些变量
${installer:variableName}
,就像你说的那样,但我收到一个错误对话框:
在生成的日志文件中使用此堆栈:
Exception:
com.install4j.api.beans.UndefinedVariableException: installer:zPath
at com.install4j.runtime.installer.InstallerVariables$InstallerReplacementCallback.handleError(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables$InstallerReplacementCallback.getReplacement(Unknown Source)
at com.install4j.runtime.util.StringUtil.replaceVariable(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.api.beans.AbstractBean.replaceVariables(Unknown Source)
at com.install4j.runtime.beans.actions.files.AbstractFileAction.getFiles(Unknown Source)
at com.install4j.runtime.beans.actions.files.AbstractFileAction.execute(Unknown Source)
at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.uninstall(Unknown Source)
at com.install4j.runtime.installer.UninstallerContextImpl$2.fetchValue(Unknown Source)
at com.install4j.runtime.installer.helper.comm.actions.FetchObjectAction.execute(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.executeActionWrapper(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.access$200(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication$1.run(Unknown Source)
我得到另一个变量的另外两个错误对话框,这是它的堆栈:
Exception:
com.install4j.api.beans.UndefinedVariableException: installer:zLoc
at com.install4j.runtime.installer.InstallerVariables$InstallerReplacementCallback.handleError(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables$InstallerReplacementCallback.getReplacement(Unknown Source)
at com.install4j.runtime.util.StringUtil.replaceVariable(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.api.beans.AbstractBean.replaceVariables(Unknown Source)
at com.install4j.runtime.beans.actions.misc.RunExecutableAction.getExecutable(Unknown Source)
at com.install4j.runtime.beans.actions.misc.RunExecutableAction.execute(Unknown Source)
at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.uninstall(Unknown Source)
at com.install4j.runtime.installer.UninstallerContextImpl$2.fetchValue(Unknown Source)
at com.install4j.runtime.installer.helper.comm.actions.FetchObjectAction.execute(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.executeActionWrapper(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.access$200(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication$1.run(Unknown Source)
Exception:
com.install4j.api.beans.UndefinedVariableException: installer:zLoc
at com.install4j.runtime.installer.InstallerVariables$InstallerReplacementCallback.handleError(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables$InstallerReplacementCallback.getReplacement(Unknown Source)
at com.install4j.runtime.util.StringUtil.replaceVariable(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.runtime.installer.InstallerVariables.replaceVariables(Unknown Source)
at com.install4j.api.beans.AbstractBean.replaceVariables(Unknown Source)
at com.install4j.runtime.beans.actions.files.AbstractFileAction.getFiles(Unknown Source)
at com.install4j.runtime.beans.actions.files.AbstractFileAction.execute(Unknown Source)
at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.uninstall(Unknown Source)
at com.install4j.runtime.installer.UninstallerContextImpl$2.fetchValue(Unknown Source)
at com.install4j.runtime.installer.helper.comm.actions.FetchObjectAction.execute(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.executeActionWrapper(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.access$200(Unknown Source)
at com.install4j.runtime.installer.helper.comm.HelperCommunication$1.run(Unknown Source)
【问题讨论】:
-
在“安装文件”操作中,是否选择了“安装文件”操作属性?
-
我不太明白您的问题,但我在“可配置横幅表单”屏幕中使用了“安装文件”操作。
-
对不起,这是乱码,问题应该是:在“安装文件”操作中,是否选择了“安装运行时”属性?
-
是的,它被选中了。
-
您能否发布您获得的整个堆栈跟踪或错误消息的屏幕截图?