所以我将使用Java Web Start来部署java应用程序。导出到Runnable Jar时,eclipse Helios中有三个选项。
有什么区别,它们将如何影响我的.jnlp文件?
如果它是一个jar,是不是更容易,因为我不必编写它使用的所有库的所有不同路径?
如果库和应用程序都有变化,那么单个jar会是更好的解决方案吗?或者我需要为每个库提供<jar href=''>
吗?
另请注意,我需要使用.dll和.so文件等本机库。
答案 0 :(得分:132)
将所需的库提取到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。