【问题标题】:Why does IntelliJ import extra libraries from JDK 1.6 for a simple hello world program?为什么 IntelliJ 从 JDK 1.6 为一个简单的 hello world 程序导入额外的库?
【发布时间】:2010-10-11 04:14:21
【问题描述】:

我是 Java 和 IntelliJ 的新手,我只是在做一个简单的“hello world”程序。 IntelliJ 在我的项目中添加了大约 10 多个来自 JDK 1.6 的库,即使我没有在我的类中导入任何似乎需要它们的东西。我从头开始创建了一个新项目。

其中一些库是 alt-rt.jar、charsets.jar、deploy.jar、dnsns.jar、javaws.jar、jce.jar、jsse.jar、localedata.jar 等。

谁能解释为什么要添加这些库?我可以从模块设置/SDK 中删除这些库而不会产生不良影响吗?

【问题讨论】:

    标签: intellij-idea libraries java


    【解决方案1】:

    它们无论如何都会在类路径中,因为它们是标准库的一部分。我不确定如果你删除它们会发生什么,但你绝对不需要这样做。

    【讨论】:

    • 我在这里有点困惑。如果我要使用记事本制作 HelloWorld.java 并从命令行使用 javac 编译它,那么我不会添加所有这些额外的类路径。这将是 javac HelloWorld.java 和 java HelloWorld 但 Intellij 在类路径中添加了大约 10 个东西。当然,这些并不总是在类路径中,因为如果我要使用记事本并从命令行编译,它们是标准库的一部分?
    • 是的 - 它们在类路径中 - 它们是 Java 运行时的一部分,并且被隐式加载。 IntelliJ 只是让这些引用的库可见。
    • 感谢凯文的解释。如果可以的话,我会支持你的评论,但我想我太新了。
    【解决方案2】:

    这些库没有导入到您的项目中,intelliJ 刚刚解析了这些 jar 以查看具有默认类路径的可访问类(用于自动完成)。

    它们不会与您的项目打包在一起。

    另外,由于您的 JDK(或任何其价值的 SDK)是为 intelliJ 而不是仅为您的项目定义的,因此您将来创建的每个项目都将使用 JDK 中已经解析的数据。

    【讨论】:

      猜你喜欢
      • 2017-09-07
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多