我想尝试在我的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)
即使官方工具因随机异常而崩溃也很尴尬,就像非官方工具一样。
答案 0 :(得分:0)
如果您咨询GrepCode,则可以看到当您的文件名以/
在跟踪代码后,似乎名称来自this method。
我不确定您的JAR有哪些文件,但看起来您要么拥有一个名称为/
的条目,要么您的条目名称为{{1 },并且正在转换为File.separatorChar
here