因此,我将使用Java Web Start部署Java应用程序。导出到Runnable Jar时,Eclipse Helios中有三个选项。

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

  • 有什么区别,它们将如何影响我的.jnlp文件?

    如果是单个jar,难道不是那么容易,因为我不必将所有不同的路径写入它使用的所有库吗?

    如果库和应用程序中都进行了更改,那么单个jar将是更好的解决方案?还是我每个库都需要<jar href=''>

    另请注意,我需要使用.dll和.so文件等本机库。

    最佳答案

  • 将所需的库提取到JAR中-从应用程序使用的库中提取实际的.class文件,并将这些.class文件放入可运行的JAR中。因此,可运行的JAR不仅将包含您的应用程序的.class文件,而且还将包含您的应用程序使用的所有库的.class文件。
  • 将所需的库打包到JAR中-将库的实际JAR文件放入可运行的JAR中。通常,JVM无法加载JAR文件中的JAR文件。但是Eclipse在可运行的JAR中添加了特殊的类来实现这一点。
  • 将所需的库复制到JAR旁边的子文件夹中-使库JAR与可运行的JAR完全分开,因此可运行的JAR仅包含应用程序的.class文件。

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

    但是,将所有内容打包在单个JAR(选项#1和#2)中的不利之处在于,如果您更新应用程序,则用户将必须下载更多数据来更新应用程序。如果将JAR保持分开,则用户只需下载包含您的应用程序代码的JAR,而不是下载包含您的应用程序代码和所有库代码的单个大型JAR。

    10-08 03:02