pack200可以用于个别的java类吗?

时间:2013-08-20 20:30:48

标签: java deployment

我看到pack200可以在JAR文件上使用,但是它可以用在单个类文件上吗?

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

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

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

1 个答案:

答案 0 :(得分:0)

简短回答:不。

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

您应该查看导致服务器上各个.class文件请求的原因。您可能有一个JNLP用于Java Applet或Webstart应用程序,该应用程序未打包为.jar文件。 JNLP / Applet类加载器的默认机制导致对文件的打包版本的请求 - 并且假定为.jar。将这些作为.class文件混淆了类加载器。您可以将违规的Applet / Webstart应用程序重新打包为.jar,也可以更改JNLP或Applet标记以将jnlp.packEnabled属性设置为false以阻止请求。

有关详细信息,请参阅Pack200上的Oracle's documentationjnlp.packEnabled属性。