java - pack200 可以用于单个 java 类吗?

标签 java deployment

我发现 pack200 可以用于 JAR 文件,但它可以用于单个类文件吗?

在提供 x.class 服务之前,我的网络服务器收到大量对不存在的 x.class.pack.gz 的请求。

如果Java请求x.class.pack.gz,这是否意味着可以打包单个类?

在没有 JAR 文件作为输入的情况下运行 pack200 似乎不起作用。

最佳答案

简短回答:否。

Pack200 格式旨在允许跨多个类文件进行更大的压缩,以减少大型 .jar 文件的大小。这是因为 .zip 格式(.jar 格式所基于的)仅单独压缩每个文件,并且不考虑存档中不同文件之间的冗余。

您应该调查是什么导致了对服务器上各个 .class 文件的请求。您的 Java Applet 或 Webstart 应用程序的 JNLP 很可能未打包为 .jar 文件。 JNLP/Applet 类加载器的默认机制会导致请求文件的打包版本 - 并假定为 .jar。将这些文件作为 .class 文件会使类加载器感到困惑。您可以将有问题的 Applet/Webstart 应用程序重新打包为 .jar,或者更改 JNLP 或 Applet 标记,将 jnlp.packEnabled 属性设置为 false 以防止请求。

有关更多信息,请参阅 Oracle's documentation Pack200 和 jnlp.packEnabled 属性。

关于java - pack200 可以用于单个 java 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18344430/

相关文章:

java - Android - 布局 xml 中 EditText 大小的问题

maven - 构建\部署-复杂的场景和应用

java - 如果用户尚未安装 JRE,我如何提示用户安装 JRE?

unix - Spring Profile值混杂

angular - 部署Azure Web App(Angular)不起作用

azure - 如何设置 FTP 到 Azure 云服务或 Azure 存储?

java - 如何在java中删除带有特殊字符的单词边界字符串

Linux 中的 Java 路径

java - 如何克隆循环链表

java - 找不到符号