RESTサービス用のjettyサーバーとジャージーライブラリが組み込まれたJavaプロジェクトがあります。私はIntellijを使ってプロジェクトを実行しています。 問題は、生成されたjarファイルを実行しようとするときです。生成されたjarファイルの実行中にエラーが発生しました
したがって、build.gradleファイルにjarファイルを生成するタスクを作成しました。以下は、私は以下のコマンド
gradle clean build fatJar
を実行したときに、私が使用して生成されたjarファイルにしようとしたとき、私は以下のエラーが直面していますjarファイルが生成されbuild.gradleでタスク
task fatJar(type: Jar) {
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': 1.0
attributes 'Main-Class': 'EmbeddedJetty.EmbeddedJettyMain'
}
}
ですコマンド
java -jar projectname.rar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:284)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:238)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:273)
at java.util.jar.JarVerifier.update(JarVerifier.java:228)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
at java.util.jar.JarFile.getInputStream(JarFile.java:450)
at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:940)
at sun.misc.Resource.cachedInputStream(Resource.java:77)
at sun.misc.Resource.getByteBuffer(Resource.java:160)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
問題の可能性がありますか?
それは完璧です。出来た。ありがとう – Maverick
どこにこの行を追加するには? build.gradleでは?これをbuild.gradleに追加する際に構文エラーが発生しました。この行でサンプルbuild.gradleを貼り付けることができますか。 –
Arjunでは、build.gradleファイルのJARプラグイン設定にexcludeディレクティブを追加する必要があります。 exclude(s)のプロパティ/メソッドについては、[JAR plugin documentation](https://docs.gradle.org/3.5/dsl/org.gradle.api.tasks.bundling.Jar.html)を参照してください。また、[この回答](http://stackoverflow.com/a/14441628/1772794)には簡単な例が含まれています。 – dkichler