为可运行的jar生成索引信息?

时间:2016-04-26 11:55:06

标签: java eclipse jar export

我无法将索引信息添加到可运行的jar中,它总是给我以下(误导性)错误:

jar i mainapp.jar
java.io.FileNotFoundException: . (Access is denied)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:214)
        at java.util.zip.ZipFile.<init>(ZipFile.java:144)
        at java.util.jar.JarFile.<init>(JarFile.java:153)
        at java.util.jar.JarFile.<init>(JarFile.java:90)
        at sun.tools.jar.Main.getJarPath(Main.java:1052)
        at sun.tools.jar.Main.getJarPath(Main.java:1068)
        at sun.tools.jar.Main.genIndex(Main.java:1084)
        at sun.tools.jar.Main.run(Main.java:269)
        at sun.tools.jar.Main.main(Main.java:1177)

(文件中不存在文件锁)

我使用eclipse kepler(无法升级此项目)来生成runnable jar。 jar启动并运行没有问题。

现在由于外部要求(不要问;-))我必须将索引信息添加到我的runnable jar中,所以我打电话:

jar i mainapp.jar

I:

-i  generate index information for the specified jar files

jar命令打印异常。当我从我的eclipse中导出一个普通的jar时,jar -i命令工作,并且一个INDEX.LIST被添加到jar中的META-INF文件夹中。

是否有可能为可运行的jar生成索引信息?

(请注意,我无法切换/升级ide或构建系统,我需要使用eclipse kepler生成可运行的jar,尽管我可以使用生成的jar执行任何操作)

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

我最终从eclipse导出普通jar,用&#39; jar&#39;生成索引信息。并手动将可运行信息添加到jar清单。