可运行的 jar 库处理选项之间的区别是什么?

因此,我将使用 JavaWebStart 来部署 Java 应用程序。当导出到 Runnable Jar 时,在 eclipseHelios 中有三个选项。

  • 将所需的库提取到 JAR 中
  • 将所需的库打包到 JAR 中
  • 将所需的库复制到 JAR 旁边的子文件夹中。

有什么不同,它们将如何影响我的.jnlp 文件?

如果它是一个单一的 jar,是不是更容易,因为我不必写入它所使用的所有库的所有不同路径?

如果库和应用程序都发生了变化,那么一个 jar 会是一个更好的解决方案吗?或者我需要为每个单独的库 <jar href=''>

还要注意,我需要使用本机库,如. dll 和. so 文件。

31458 次浏览
  1. 将所需的库提取到 JAR 中——从应用程序使用的库中提取实际的 .class文件,并将这些 .class文件放入可运行的 JAR 中。因此,可运行的 JAR 不仅包含应用程序的 .class文件,还包含应用程序使用的所有库的 .class文件。

  2. 将必需的库打包到 JAR 中——将库的实际 JAR 文件放到可运行的 JAR 中。通常,JAR 文件中的 JAR 文件不能由 JVM 加载。但是 Eclipse 为可运行的 JAR 添加了特殊的类来实现这一点。

  3. 将所需的库复制到 JAR 旁边的子文件夹中——使库 JAR 与可运行的 JAR 完全分离,这样可运行的 JAR 将只包含应用程序的 .class文件。

选项 # 2很方便,因为它将所有内容整齐地打包到一个 JAR 中,并将库 JAR 与应用程序的 .class文件分开。

但是,将所有内容打包在一个 JAR 中的缺点(选项 # 1和 # 2)是,如果更新应用程序,那么用户将不得不下载更多数据来更新应用程序。如果 JAR 保持独立,那么用户只需要下载包含应用程序代码的 JAR,而不需要下载包含应用程序代码 还有的单个大型 JAR 所有库代码。