java.lang.IllegalArgumentException:pack200中的绝对文件名

时间:2016-01-04 21:25:01

标签: java

我想尝试在我的jar文件上运行pack200工具,这会变得越来越大,并且没有可靠的工具可以从中删除90%的未使用的.class文件。

我收到此错误:

C:\MyDirectory\programing\java\AutoClient>"C:\Program Files\Java\jdk1.8.0_31\bin\pack200.exe" -r AutoClient_packed.jar AutoClient.jar
Exception in thread "main" java.lang.IllegalArgumentException: absolute file name /
        at com.sun.java.util.jar.pack.Package.fixupFileName(Package.java:881)
        at com.sun.java.util.jar.pack.Package.access$100(Package.java:63)
        at com.sun.java.util.jar.pack.Package$File.<init>(Package.java:762)
        at com.sun.java.util.jar.pack.PackerImpl$DoPack.readFile(PackerImpl.java:534)
        at com.sun.java.util.jar.pack.PackerImpl$DoPack.run(PackerImpl.java:484)
        at com.sun.java.util.jar.pack.PackerImpl.pack(PackerImpl.java:98)
        at com.sun.java.util.jar.pack.Driver.main(Driver.java:313)

即使官方工具因随机异常而崩溃也很尴尬,就像非官方工具一样。

1 个答案:

答案 0 :(得分:0)

如果您咨询GrepCode,则可以看到当您的文件名以/

开头时发生错误

在跟踪代码后,似乎名称来自this method

我不确定您的JAR有哪些文件,但看起来您要么拥有一个名称为/的条目,要么您的条目名称为{{1 },并且正在转换为File.separatorChar here