相关疑难解决方法(0)

尝试运行.jar时"无效的签名文件"

我的java程序打包在一个jar文件中,并使用外部jar库,bouncy castle.我的代码编译得很好,但是运行jar会导致以下错误:

线程"main"中的异常java.lang.SecurityException:Manifest主要属性的签名文件摘要无效

我用谷歌搜索了一个多小时寻找解释,发现很少有价值.如果有人以前看过这个错误并且可以提供一些帮助,我将不得不承担责任.

java jar executable-jar

434
推荐指数
11
解决办法
23万
查看次数

从命令行运行JAR文件并指定classpath

我编译了一个JAR文件并在清单中指定了Main-Class(我使用了Eclipse Export函数).我的依赖项都在标记的目录中lib.我似乎无法得到关于如何执行我的JAR文件的直接答案,同时指定它应该使用lib/*作为类路径.

我试过了:

]$ java -jar -cp .:lib/* MyJar.jar
]$ java -cp .:lib/* -jar MyJar.jar
]$ java -cp .:lib/* com.somepackage.subpackage.Main
Run Code Online (Sandbox Code Playgroud)

等等...

每个都给出一个错误说:

Error: Could not find or load main class ....

或者NoClassDefFoundError表示没有找到库.

我甚至尝试重新制作JAR文件并包含lib目录和内容,但仍然没有骰子......

如何从命令行执行JAR文件并指定要使用的类路径?

java shell command-line classpath

107
推荐指数
4
解决办法
20万
查看次数

如何签署自定义JCE安全提供程序

Sun的PKCS11 JCE安全提供程序缺少我们需要的一些功能.
所以我使用原始资源编写了一个增强版本.

遗憾的是,JCE基础结构拒绝新的提供程序
"JCE无法对提供程序进行身份验证",
因为它未正确签名.

javax.crypto.JceSecurity.verifyProviderJar(...)抛出.
(它叫javax.crypto.JarVerifier.verify())

有关如何签署新提供商以使其与JCE一起使用的任何建议?

java security jce digital-signature

11
推荐指数
2
解决办法
2万
查看次数

jce 无法验证提供者 bc

我开发了一个应用程序,在 BountyCastle.jar 的帮助下使用了密码学。我还有一行 Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

当我从 Netbeans 执行程序时一切正常

但是当我将应用程序打包到内部使用 BouncyCastle jar 的可执行 jar 并执行该 jar 时,

我遇到异常

JCE 无法验证提供者 BC java.lang.SecurityException: JCE 无法验证提供者 BC

是否还有其他方法可以实现相同的效果。因为非技术人员很难将BountyCastle.jar添加到jre的ext文件夹中。那么还有其他方法可以解决我的问题吗?

在 netbeans 中打包 jar 时,是否有任何方法可以排除 BountyCastle.jar,以便可以从外部 lib 文件夹访问。

java bouncycastle

5
推荐指数
1
解决办法
2万
查看次数

使用 Maven Shade 插件创建包含依赖 jar 的依赖文件夹

我正在使用 Maven Shade 插件创建一个胖罐子,其中也包括一些充气城堡罐子。但这会产生问题,因为 Bouncy Castle 的未签名版本。

java.lang.SecurityException:JCE 无法验证提供者 BC

现在解决方案之一是拥有依赖项的外部文件夹并在 fat jar 的清单文件中定义此类路径。

例如:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                            <artifactSet>
                                <excludes>
                                    <exclude>org.bouncycastle:*:*:*</exclude>
                                </excludes>
                            </artifactSet>
                        <finalName>Relay-S3-Monitor-jar-with-dependencies</finalName>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>at.seresunit.lecturemanager_connector.App</mainClass>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                 <manifestEntries>
                                    <Main-Class>com.pb.relay.s3.CamelBoot</Main-Class>
                                    <Class-Path>. bouncycastle_libs/bcpg-jdk15on-1.55.jar bouncycastle_libs/bcprov-jdk15on-1.55.jar bouncycastle_libs/bcprov-jdk16-1.45.jar</Class-Path>
                                </manifestEntries>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin
Run Code Online (Sandbox Code Playgroud)

现在我需要的是:在同一个 pom.xml 中,我需要插入一个创建依赖项文件夹的部分(插件)(仅包含 bouncy castle jar)

bouncycastle maven maven-shade-plugin

5
推荐指数
1
解决办法
2670
查看次数