我无法将索引信息添加到可运行的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执行任何操作)
答案 0 :(得分:0)
回答我自己的问题:
我最终从eclipse导出普通jar,用&#39; jar&#39;生成索引信息。并手动将可运行信息添加到jar清单。