gpt4 book ai didi

java - Maven 无法使用 rt.jar 进行编译

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:43 26 4
gpt4 key购买 nike

我的项目使用sun.security.tools.keytool在JDK 1.8下生成证书,这个包可以在rt.jar中找到。根据Introduction to the Dependency Mechanism, System Dependencies ,我可以将 rt.jar 添加为我项目的依赖项:

<dependency>
<groupId>sun.jdk</groupId>
<artifactId>rt.jar</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>

我很确定 Maven 找到了这个 jar 文件。但是,当我导入 sun.security.tools.keytool.Main 时,它仍然会生成错误。此外,最奇怪的是,如果我将 rt.jar 复制到某个地方并将其路径填充到 pom.xml 中,它就可以了!一旦我切换回使用原始 rt.jar,它就会失败!

谁能告诉我这是怎么发生的?

最佳答案

我创建了一个 Maven 项目并添加了 <dependency>将您的问题提交给它的 POM。

首先我得到:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] .../SO-31353565/src/main/java/igb/so/SO31353565.java:[6,34]
package sun.security.tools.keytool does not exist
[ERROR] .../SO-31353565/src/main/java/igb/so/SO31353565.java:[12,50]
cannot find symbol
symbol: variable Main
location: class igb.so.SO31353565

然后,根据Cannot find symbol (CertAndKeyGen) with JDK8 ,我补充说:

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<fork>true</fork>
<compilerArgument>-XDignore.symbol.file</compilerArgument>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>

到POM,编译成功。

关于java - Maven 无法使用 rt.jar 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31353565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com