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

Java Maven无法使用rt.jar进行编译,java,maven,Java,Maven,我的项目使用sun.security.tools.keytool在JDK1.8下生成证书,这个包可以在rt.jar中找到。根据,我可以将rt.jar作为依赖项添加到我的项目中: <dependency> <groupId>sun.jdk</groupId> <artifactId>rt.jar</artifactId> <version>1.8</version> <scope>sys

我的项目使用sun.security.tools.keytool在JDK1.8下生成证书,这个包可以在rt.jar中找到。根据,我可以将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项目,并将您的问题添加到它的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
然后,据报道,我补充说:

<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,编译成功。

如果您使用的是Gradle而不是Maven,您可以将其添加到构建中:

compileJava {
    options.fork = true
    options.forkOptions.executable = 'javac'
    options.compilerArgs << "-XDignore.symbol.file"
}
它对我有用

我是这样解决的:

添加到JAVA_HOME/lib/rt.jar 转到Eclipse菜单Windows->Windows->Preferences->Java->Installed JRE 选择jdk版本。在me案例中,jdk-11.0.4 选择Add External JARs。。并添加JAVA_HOME/lib/rt.jar
jar包含运行时类-因此根本不需要将此jar作为显式依赖项包含在内…我知道。。。但是heritrix网络爬虫使用这个。所以这个问题阻止我编译heritrix…你能提供一个指向你所指的Maven wiki页面的链接吗?如何在gradle中指定相同的链接?有什么想法吗?老兄,你救了我我从5个小时以来一直在找这个谢谢:我正试图用Intellij idea构建Openfire。我在Win 10机器上安装了最新的Java SDK 1.8。导入sun.security.x509.GeneralNameInterface;时出现相同错误;。有多个pom.xml文件,一个全局文件用于项目文件夹,一个在xmppserver子文件夹中。我试图添加您描述的设置-它没有修复错误。@vkelman由于多个pom:您是否在相关项目上尝试mvn帮助:有效pom,以查看该设置是否真的应用于该项目。1。现在有了强大的构建工具,手动复制依赖项并不是最先进的。2.在Eclipse中引用…/jdk/jre/lib/rt.jar还不够吗?