我的程序在IDE上编译后工作正常,但是当我尝试运行创建的.jar时,我收到以下错误:
java -jar /Users/bigbitecode/Documents/workspace/sys\ client_b/sys-client/out/artifacts/sys_client_jar/sys-client.jar
Exception in thread "main" java.lang.SecurityException: no manifiest section for signature file entry com/sun/java/help/impl/TagProperties.class
at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:399)
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:250)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:305)
at java.util.jar.JarVerifier.update(JarVerifier.java:216)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:345)
at java.util.jar.JarFile.getInputStream(JarFile.java:412)
at sun.misc.JarIndex.getJarIndex(JarIndex.java:137)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:668)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:659)
at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:632)
at sun.misc.URLClassPath$3.run(URLClassPath.java:362)
at sun.misc.URLClassPath$3.run(URLClassPath.java:352)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:351)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:328)
at sun.misc.URLClassPath.getResource(URLClassPath.java:194)
at java.net.URLClassLoader$1.run(URLClassLoader.java:358)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
我已经阅读了几个类似的问题,这似乎是由于我使用的一个令人讨厌的jar作为依赖,但我不知道哪一个或如何找到它。但是,一旦我这样做,我该怎么把它从罐子里排除?
它会成为智能的原因吗?是否可以通过终端构建jar?
编辑: - 我做了一个jar -tf sys-client.jar,它显示了所有文件,包括清单 - 目前我的清单有以下内容:
Manifest-Version: 1.0
Main-Class: SysClient.data.gui.SysClient
答案 0 :(得分:0)
是的,你可以使用jar命令从终端构建一个jar文件。请参阅此文档:
http://docs.oracle.com/javase/tutorial/deployment/jar/build.html
确保正确设置了清单。创建jar后,运行jar -tf并检查是否存在所有类和清单文件。
它是智能的原因:看起来你的jar没有正确捆绑。如果需要,可以先使用jar -tf jar-fileName.jar验证jar文件的内容是否正确