java - 使用 Java WebStart 创建桌面应用程序的最佳实践

标签 java java-web-start

希望我能解释清楚。我正在创建一个依赖于其他外部 jar 文件的桌面应用程序。例如,我的应用程序是基于 Spring 的,因此我的应用程序中需要一些 SpringFramework jar 文件。

我正在使用 Java WebStart 来“启动”此桌面应用程序。 (至于我这样做的原因是我需要通过我们正在构建的网站执行这个定制的桌面应用程序)。

但是,当我通过单击 jnlp 描述文件来执行桌面应用程序时,我遇到了麻烦。它给出错误,指出我的桌面应用程序正在使用的某些类没有类定义。然后我意识到,当我的桌面应用程序打包为 JAR 文件时,它不包含我的其他 JAR 依赖项。这就是错误的原因。

我想,我可以在我的桌面 JAR 文件中包含外部 JAR 依赖项,但这会使我的桌面 JAR 文件变得相当大。由于 JAR 文件较大,这将使 JAR 文件的下载变慢,因为单击 JNLP 描述 rune 件将始终从服务器的桌面 JAR 文件获取资源。 (除非我可以“告诉”JNLP 描述符在服务器上没有新版本时不要下载。)

无论如何,我在想这是否是一种可接受的方法,其中我的桌面 JAR 文件将不包含 JAR 依赖项,而仅包含对其的引用。当我的桌面应用程序启动时,它将检查这些依赖项在桌面上是否可用,如果不可用,它将调用另一个 JNLP 描述符,该描述符将下载外部 JAR 文件并将它们复制到我的桌面上的预定位置应用引用。这行得通吗?或者有更简单的解决方案来解决我的问题吗?

谢谢

最佳答案

JNLP 文件应包含对主文件和所有所需库的引用。这是标准功能,您应该这样做。

请注意,文件名中应包含时间戳,以避免更新代码时出现缓存问题。

关于java - 使用 Java WebStart 创建桌面应用程序的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850598/

相关文章:

java - 如何正确同步Java中的方法访问

java - JTable 调用自定义单元格渲染器方法...连续

java - 使用 Eclipse 调试 jnlp 应用程序

java - 以编程方式显示 JNLP java web start 控制台

c# - 将 DTO 传递给服务层

java - WrappedArray 的 WrappedArray 到 java 数组

java - 解析回调 URL 中参数的最佳方法

java - 生成给定字符串的所有排列

java - 生成 java JNLP 文件?

java - 部署具有下降逆向工程保护的跨平台Java桌面应用程序?