繁体   English   中英

加载库jar时出错

[英]Error loading library jar

我使用7-zip压缩了我的图书馆jar文件,并进行了超压缩以减小尺寸。 但是在那之后,当我在Netbeans中使用它时,我的Swing应用程序不会显示我的库jar已加载。 Java无法访问库jar文件中的内容。

Java不支持7-zip压缩吗? 有解决此问题的方法或补救措施吗?

是否有其他用于Java的压缩工具将jar文件压缩到较小的大小?


我的jar文件1的大小为13mb,我的客户觉得要加载它很重,他希望它的大小很小。 使用pack200,我将罐子的大小调整为4.5mb(很好)。 但是最终将错误加载到主jar文件中。

  1. 我的应用程序的Jar库文件。 它具有DJ本机Swing和其他类,例如PPT阅读器等。

使用“标准压缩”或使用pack200压缩它们,这是JVM理解的仅有的两种压缩格式。 Jar工具当然非常适合该目的。 我通常会从Ant构建脚本中调用它。


减少可分配类的大小的一种极好方法是混淆代码。 虽然最终无法有效地提供它们通常使用的“代码保护”,但混淆处理通常会使二进制文件小很多(40%-60%)。


我的应用程序的库文件..它具有dj native swing和其他类(如ppt阅读器等)...

尝试混淆和标准压缩。 报告大小并成功/失败以加载和验证。

由于它显然是台式机应用程序,因此也请考虑拆分该应用程序。 放入独立的Jars中,并使用Java Web Start懒惰地交付它们。 这意味着它们仅在需要时加载。 例如,PPT阅读器可能用于帮助系统。 无需加载应用程序的帮助。 进入屏幕,只有他们按F1

对于延迟加载,仅当用户请求帮助时才下载PPT阅读器和帮助文件,然后显示进度对话框。

更好的是,如果API得到更新,只需将更新的Jar加载到服务器,JWS就会自动更新客户端上的版本(如果需要-例如,它不会更新尚未缓存的任何“懒惰” Jar)。

必须使用jar工具压缩.jar文件。 格式本身实质上是带有某些Java特定元数据的zip

我认为标准的类加载器不支持其他压缩格式。

Java不支持7-zip压缩

那是对的。 Java无法处理已被某些第三方工具压缩的JAR文件。

最简单的选择是不执行此操作。 (摆脱其中的某些电影或使用所有光盘的任何电影:-))

下一个最简单的选择是使用7-zip工具解压缩文件,然后再尝试在Java中使用它。

最后,如果您只是尝试使用此超压缩的JAR文件执行应用程序,则可以编写一个使用7-zip即时解压缩JAR文件的类加载器。 (或者,如果发布了7-zip使用的算法,则可以在Java中实现一个解压缩器并将其嵌入到类加载器中。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM