使用自定义代理设置调用install4j更新程序

时间:2012-07-30 11:35:31

标签: install4j

我希望使用Install4J包装的应用程序执行以下操作:

  • 从包装的Java应用程序的代码中调用Install4J Updater
  • 显示GUI对话框,如果有可用更新,则在Install4J IDE中为用户配置
  • 如果需要,将自定义代理参数传递给Updater

据我所知,Install4J我应该可以使用以下内容:

List<String> args = new ArrayList<String>();
args.add("-DproxySet=true");
args.add("-DproxyHost="+MY_PROXY_SERVER);
args.add("-DproxyPort="+MY_PROXY_PORT););
args.add("-DproxyAuth=true");
args.add("-DproxyAuthUser="+MY_PROXY_USERNAME);)
args.add("-DproxyAuthPassword="+MY_PROXY_PASSWORD);

ApplicationLauncher.launchApplicationInProcess(
    MY_UPDATER_ID.toString(), 
    args.toArray(new String[args.size()]),
    null, 
    ApplicationLauncher.WindowMode.FRAME, 
    null);

但我一直在弹出输入代理详细信息。

我已经尝试更改参数而不是前缀“-D”,尝试将Updater切换到控制台模式或无人参与模式,不传递参数,而是直接使用System.setProperty()将它们放到JVM中......但是没有成功。我总是以代理弹出或“无法从 _ __ _ 下载更新信息的消息结束”请检查您的网络设置。“

另外:如果我反复调用Updater但使用不同的参数,弹出窗口总是显示我用于第一次调用的时间。

有任何帮助吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

感谢EJ-tehnologies(Install4J的开发人员)的支持,我们得到了代理服务器。在询问我们使用v5.0.11的问题时,他们指示我们使用v5.1.2(当时最新的稳定版本)。最后,我们最终使用了测试版v5.1.3(目前尚未公开发布)。

有关如何使用代理工作,没有弹出窗口以及使用动态参数的详细信息:

  • 在上面的代码中添加了一个阻止Install4J检测系统范围代理设置的附加参数:

    args.add("-Dinstall4j.noProxyAutoDetect=true");
    
  • 使用方法ApplicationLauncher.launchApplication()来调用Install4J包装器,因为它将在新的JVM中启动它。由于JVM处理现有的env变量,因此需要以这样的方式启动,所以如果你在同一个JVM中启动Install4J并在该JVM中附加参数,Install4J可能不会选择最新的值(这是你想动态更改代理参数) / p>

  • 等待v5.1.3变得稳定并下载它,因为当代理参数明确地给予Install4J时,它将支持代理弹出对话框的“不显示”(这是我的猜测,我不是在说来自EJ-technologies的人员姓名)