你好,我是一个新手,对于Java模块还不是很了解,所以我的问题可能有点儿愚蠢。
我试图使用密钥库对我的jar文件进行签名,但是出现了以下错误:
user@Ubuntu:libs(master)$ jarsigner -keystore keyStoreFileName Test.jar alias
Enter Passphrase for keystore:
jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: module-info.class
我找不到任何关于如何避免这个问题的文档。
所以我运行了 jar -tf 命令来检查 jar 文件的内容,确认它确实有多个 module-info.class 文件。
有没有什么选项可以将它们合并?如何操作?
我的 module-info.java 文件包含以下内容。
module module_name {
requires java.desktop;
requires java.prefs;
requires javafx.controls;
requires javafx.fxml;
requires javafx.web;
requires org.jsoup;
opens com.test.apps to javafx.fxml;
exports com.test.apps;
}
我正在使用Gradle创建JAR文件,操作如下:
jar {
manifest {
attributes 'Main-Class': 'com.test.apps.Main'
attributes 'Application-Name': 'Test'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
我知道我不应该发布截图,但这里是用存档管理器打开的jar文件。
![Archive manager screenshot](https://istack.dev59.com/ipBwT.webp)
所以这些是从我的依赖项中添加的,如何将它们集成到一个类中?或者是否有其他选项可以签名一个jar?
再次说明,这是一个新手。
[编辑] 如果你正在寻找完整的源代码,它在GitHub上->https://github.com/CodingOtaku/Animu-Downloaderu
module-info.class
文件? - Naman