2012-01-05 105 views
0

我想开始在安装完成的install4j启动,但它不工作。虽然启动器可以很好地作为开始菜单项。我有理由相信这是因为我的应用程序是通过Java Web Start启动的(它必须出于法律原因)。启动时install4j安装一个Java Web Start应用程序完成

在我install4j安装单击Finish按钮时,会发生什么事是:

  1. 安装程序窗口消失和Java Webstart的启动(显示其飞溅)。
  2. 没有更多的情况(通常是我的Java应用程序会从这里开始)。

通过寻找在Java的日志,我可以看到Webstart的实际执行我的Java应用程序,但它未能完全启动,因为该文件C:\ Users \用户名\ AppData \本地的\ Temp \ e4j2E4E.tmp_dir \ jre \ lib \ ext \ dnsns.jar不再存在。这个目录似乎是install4j临时放置它需要运行的JRE的地方。

通过在文件管理器中点击F5,我可以看到在执行WebStart之后JRE被删除了(我猜是通过install4j)。这将解释为什么我的Java应用程序失败。

运行开始菜单启动程序(安装后手动)时,一切正常,因为我的Java应用程序然后使用与它捆绑在一起的JRE(在它自己的子文件夹中)。

如何防止install4j删除临时JRE,或强制WebStart与另一个(捆绑的)JRE执行我的Java应用程序?

在此先感谢您的任何建议!

==编辑== 这就是我的应用程序的启动方式:install4j Launcher启动我的Java类,启动启动我的主Java应用程序的javaws二进制文件。

+0

你是如何为您的应用程序启动或执行? (目前正在做什么失败) – cdeszaq 2012-01-05 16:29:55

+0

为什么不把Install4J带出环路并在整个安装/启动时使用JWS? – 2012-01-06 15:04:43

+0

cdeszaq:install4j Launcher启动我的Java类,它启动启动我的主Java应用程序的javaws二进制文件。 – minisu 2012-01-09 10:50:29

回答

0

我假设你用“运行可执行文件”操作启动web开始。您是否使用System.getProperty("java.home")来获取当前JRE的位置?这将产生暂时解压缩的JRE,在安装程序退出后将被删除。

您应该使用sys.preferredJre安装程序变量。在文本字段中,输入${installer:sys.preferredJre},脚本使用context.getVariable("sys.preferredJre")。在“安装文件”操作运行后,该变量将包含已安装的JRE软件包的位置。

+0

我试过“Execute Launcher”和“Run executable”。 AFAIK,我从来没有明确地设置或获得JRE的家。在install4j中,我会使用sys.preferredJre?我找不到任何设置JRE的参数。 – minisu 2012-01-09 10:39:54

+0

问题是,临时JRE如何进入web开始? install4j没有web启动功能,因此您必须在某个时候明确调用start web start。 – 2012-01-09 10:49:59

+0

Ingo:好的,install4j启动程序调用一个基本上这样的Java类:Runtime.getRuntime().exec(new String [] {“jre/bin/javaws.exe”,new File(“myAppsWebStartConfig.jnlp” ).getAbsolutePath()},null); – minisu 2012-01-09 11:38:08

相关问题