首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合Launch4J和Java?

结合Launch4J和Java?
EN

Stack Overflow用户
提问于 2010-07-31 23:30:34
回答 6查看 2.6K关注 0票数 8

我有一个工作的JNLP应用程序,我需要分发给各种非技术终端用户。

如果用户的机器安装了最近的JVM,那么一切都很好。他们只需双击我发送给他们的JNLP文件,剩下的就由完成。

现在,我想分发一些与JVM一起工作或不使用JVM的东西,例如一个.exe文件,如果没有一个兼容的JVM,就自动下载一个兼容的JVM,然后调用javaws.exe下载.jar文件并启动应用程序。

Launch4J是我发现的最接近的匹配,但它不能通过javaws.exe启动程序。唯一的选项是javajavaw

我想要一种可以:

  • 生成不需要预安装JVM的自包含.exe文件。
  • 解析.jnlp文件并在必要时确定要下载的JVM (我知道Java可以在必要时下载JVM,但我希望避免需要下载两个JVM,第一个用于引导Java,第二个用于运行可能需要特定但不同JVM的应用程序)。
  • 自动下载并安装JVM,而不是简单地将用户引导到Java下载页面或打开一个新的安装向导。
  • 必要时提示输入管理密码(用于安装JVM的权限)。我不认为这是内置在Sun安装程序中的。)
  • 只显示一个安全对话框(我只想提示用户一次,以确认他们信任生成的.exe,但我不希望第二个提示来确认他们信任来自同一个来源并使用相同证书签名的.jar文件)。我假设这将需要自动下载程序在启动JWS之前安装证书。)
  • (不需要)与JVM同时在后台下载应用程序资源(例如.jar文件)。这将要求在安装JVM之前运行缓存,因此缓存必须以本机代码实现,DownloadService稍后将使用JNI与其接口。

像这样的产品存在吗?我怀疑没有,但值得一试。

Update I找到了解决相关问题的这篇文章,尽管它是为脱机安装而设计的,我主要关注的是在线安装。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-11 11:58:41

我也遇到过同样的问题。最后,我得到了一只蝙蝠,一只壳牌,并最终获得了Mac的DMG。

我发现了关于使用Nullsoft安装程序自动安装Windows的JRE的评论:

安装

我认为在JNLP之外,您会发现很难实现所有平台的自动化。然而,在我的项目中,长达两年的时间里,我还没有看到用户不得不自己获得java的抱怨。我相信大多数机器都已经有了。Windows用户抱怨没有快捷方式,但这很容易使用vbs。

同样在Mac上,它们也是指定JRE的方法。Mac将拥有最新的版本,除非是较旧的基于PowerPC的机器。在这种情况下,没有Java6。

在你们中,有几个发射器,我会推荐一种自动更新策略。

票数 1
EN

Stack Overflow用户

发布于 2012-01-04 00:01:55

我一直能够做到这一点&在生产中使用它。

编写一个简单的引导类,jar,然后Launch4j这个jar。

下面是简单引导类的主要内容:

代码语言:javascript
复制
public static void main(String[] args) {
  try {     
    final File jnlp = File.createTempFile("temp", ".jnlp");
    final URL url = new URL("http://yourjnlp-wherever-youre-hostingit.jnlp");
    yourCopyStreamMethodYouWrote(url.openStream(),new FileOutputStream(jnlp));
    Desktop.getDesktop().open(jnlp);
  } catch (final Throwable t) { 
     // do something useful here
  }
}
票数 4
EN

Stack Overflow用户

发布于 2010-08-11 14:21:39

您还可以考虑使用Excelsior编译您的项目。除了所有其他的东西,它还创造了一个自给自足的合理大小的分布。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3380184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档