【问题标题】:Which .jar file in JDK be loaded when one project configure with JDK?当一个项目使用JDK配置时,会加载JDK中的哪个.jar文件?
【发布时间】:2019-05-21 03:56:02
【问题描述】:

在我的 IntelliJ IDEA 中,当配置 JDK 并为一个项目选择 JDK home 时,将加载下面的 classpath/jar 文件。

但据我所知,JDK主路径中的一些jar文件没有被加载,

例如,同一路径下的此文件尚未加载 :/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/security/policy/limited/US_export_policy.jar。

这如何生效?我可以选择特殊设计的 JDK 并在其他地方加载一些 jar 吗?我在哪里可以更改加载规则,在 IDEA 或 JDK 源代码中?

jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/charsets.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/deploy.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/cldrdata.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/dnsns.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jaccess.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jfxrt.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/localedata.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/nashorn.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunec.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/zipfs.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/javaws.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jce.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfr.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfxswt.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jsse.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/management-agent.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/plugin.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/resources.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/rt.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/ant-javafx.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/dt.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/javafx-mx.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/jconsole.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/packager.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/sa-jdi.jar!/
jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/tools.jar!/

【问题讨论】:

  • 我认为所有这些 jar 都是必需的,因为 Intelij 会自动从 lib 文件夹中读取这些 jar。你到底面临什么问题:)
  • 我只想知道为什么要加载提到的这些.jar 文件? Intellij 根据特殊的类路径设置规则?在 Eclipse 中,从 JDK 加载的 .jar 文件是不同的。我在哪里可以更改类路径并包含另一个类路径?
  • 你不应该摆弄这些罐子。 Java 9 已经摆脱了它们。不要在他们身上浪费更多的精力。

标签: java intellij-idea java-8


【解决方案1】:

您可以在“项目结构 | SDKs - 类路径”中配置类路径

【讨论】:

  • 是的,这可以配置父类路径,但是为什么父类路径中的一些.jar文件被加载,而其他的却没有。应该有另一个规则。
  • 哪些 JAR 没有加载?
  • 为什么有些 JAR 会被加载到 /jdk1.8.0_161.jdk/Contents/Home/ ,而有些则不会?谁造了统治者?我在哪里可以找到?
  • 只有“security”文件夹下的 JARS 不会被加载。你有什么问题吗?
  • 没错!但是规则在哪里定义,我可以根据自己的意愿更改吗?因为这对我来说不是透明的,让我感觉不舒服。 :)
猜你喜欢
  • 2016-07-27
  • 1970-01-01
  • 2015-11-05
  • 2016-01-05
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 1970-01-01
相关资源
最近更新 更多