【问题标题】:Correct way to add external jars (lib/*.jar) to an IntelliJ IDEA project将外部 jars (lib/*.jar) 添加到 IntelliJ IDEA 项目的正确方法
【发布时间】:2019-07-07 06:28:54
【问题描述】:

在 IntelliJ IDEA 中新建 Java 项目时,会创建以下目录和文件:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

我想配置 IntelliJ IDEA 以将我在 ./lib/*.jar 中的依赖 JAR 包含到项目中。在 IntelliJ IDEA 中实现这一目标的正确方法是什么?

【问题讨论】:

  • 我在 IntelliJ 的终端中运行程序时遇到了这个问题。我已经使用 import 语句来使用程序中需要的类。当我在 IDE 中运行它时,它运行良好。但是当我尝试从命令行 % javac MyProgram.java 编译时,它说错误:找不到符号
  • @don_Gunner94 您需要了解类路径的工作原理,并且您可能需要提供比您预期更多的内容。

标签: java intellij-idea


【解决方案1】:
  1. 文件 > 项目结构
  2. 项目设置 > 模块 > 依赖项(选择其中一项)
    • 1 JAR 或目录...
    • 2 库...
    • 3 模块依赖...
  3. 申请 + 确定

  1. 导入java类

【讨论】:

    【解决方案2】:

    IntelliJ IDEA中添加外部jar的步骤:

    1. 点击工具栏中的文件
    2. 选择项目结构选项(CTRL + SHIFT + ALT + S在 Windows/Linux 上, + ; 在 Mac OS X 上)
    3. 在左侧面板中选择模块
    4. 选择依赖项选项卡
    5. 选择+图标
    6. 选择1个JAR或目录选项

    【讨论】:

    • 另外,考虑添加一个 lib 文件夹,并使用“附加 Jar 目录”,这将添加 lib 文件夹中的所有 jar。对于大型项目,这使您不必单独选择每个 jar。
    • 供将来参考:那个“添加”按钮位于窗口的右边缘,我花了很多时间寻找它,然后才找到这篇文章并考虑调整窗口大小。 (这是在 OSX 10.6.5 上...)
    • @joeslice 仅在 JAR 位于根目录中时才有效,对吗?它似乎不适用于“lib”内子目录中的 JAR。
    • 在 IJIdea 13 中,有“+”而不是“add”。
    • 我使用的是 IDEA 14.0.2。而不是 Add 有 + 符号。点击 + 后有 3 个选项: 1. JAR 或目录 2. Library... 3. Module Dependency...
    【解决方案3】:

    只需将 .jar 复制粘贴到“libs”文件夹(或整个“libs”文件夹)下,右键单击它并从列表中选择“添加为库”选项。它会做剩下的......

    【讨论】:

    • 自 Eclipse 以来最简单的方式。
    • 简单明了!!
    • 有点烦人,它仍然要求一个“名字”,你能把任何垃圾留在里面吗?
    • 这对我也有帮助!
    • 我在 IntelliJ 的终端中运行程序时遇到了这个问题。我已经使用 import 语句来使用程序中需要的类。当我在 IDE 中运行它时,它运行良好。但是当我尝试从命令行 % javac MyProgram.java 编译时,它显示错误:找不到符号。 ——
    【解决方案4】:

    如果你是用 gradle 构建你的项目,你只需要在 build.gradle 中的依赖项中添加一行:

    buildscript {
        ...
    }
    ...
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    }
    

    然后将该文件夹添加到您的根项目或模块中:

    然后你把罐子放在那里,你就可以走了:-)

    【讨论】:

    • 我在 IntelliJ 的终端中运行程序时遇到了这个问题。我已经使用 import 语句来使用程序中需要的类。当我在 IDE 中运行它时,它运行良好。但是当我尝试从命令行 % javac MyProgram.java 编译时,它显示错误:找不到符号。 ——
    • 这应该是正确的答案,因为它可以让您推送和同步所需的库,而无需从拉取项目的库中进行任何配置。设置一次就忘记了。
    • 哇,我简直不敢相信找到这一行花了多长时间!甚至 Gradle 上的教程都没有这个。我花了一个星期来完成这项工作(在我仅有的一点空闲时间和精力中)哈哈。我不正常创建库,而且是很久以前的事了。
    【解决方案5】:

    您将它们作为库添加到您的模块中。

    我的源代码中通常有一个/lib 目录。我将所有需要的 JAR 放在那里,将 /lib 添加为库,并使其成为我的模块依赖项的一部分。

    2018 年更新:我现在正在使用 IntelliJ 2017/2018。

    我完全致力于使用 Maven 和 Nexus 进行依赖管理。

    这就是世界的发展方式。我知道的每个开源 Java 项目都使用 Maven 或 Gradle。你也应该。

    【讨论】:

    • 是的,但是如果 Maven pom 不叫 pom.xml 怎么办?然后好像我无法读取 Maven 依赖项。
    • 约定是叫它 pom.xml。遵循约定并重命名您的文件。
    • 我仍然觉得需要,当 jar 没有 maven repo 时......但是,我不明白如何正确地做到这一点。我了解如何添加目录,只是不明白如何获取它也导入 javadocs。它在我将 jar 添加为单个文件时有效,但如果我添加目录则无效。这根本不可能吗?
    • 这是合理的建议。手动添加 jars 既费时又容易出错。您的依赖项应始终“通过代码”配置,在 pom.xml(对于 maven)或 gradle 的任何等效项中。
    • 所有 JAR 都有一个 repo。如果它在公共或私人仓库中不可用,您可以在本地 .m2 中手动安装它。没有理由不这样做。
    【解决方案6】:

    我用这个方法,效果很好:

    1- 复制并粘贴.jar 文件到libs 文件夹下。

    2- 在build.gradle 中将compile fileTree(dir: 'libs', include: '*.jar') 添加到dependencies,然后将包含libs 文件夹中的所有jar。..

    3- 右键单击​​libs 文件夹并从列表中选择“添加为库”选项。

    【讨论】:

    • 谢谢,这是唯一对我有用的东西!
    • 我在 IntelliJ 的终端中运行程序时遇到了这个问题。我已经使用 import 语句来使用程序中需要的类。当我在 IDE 中运行它时,它运行良好。但是当我尝试从命令行 % javac MyProgram.java 编译时,它说错误:找不到符号。
    【解决方案7】:

    虽然我同意前面的答案,但重要的是要注意如何访问这些外部库的代码。

    例如,要访问外部库中的一个类,您需要使用 import 关键字后跟外部库的名称,并继续使用点符号,直到需要上课了。

    查看下图,了解我是如何从 quickfixj 库中导入 CodeGenerationException 类的。

    【讨论】:

      【解决方案8】:

      IntelliJ IDEA 15 和 2016

      1. 文件 > 项目结构...

        或按 Ctrl + Alt + Shift + S

      2. 项目设置 > 模块 > 依赖项 > “+”符号 > JAR 或目录。 ..

      3. 选择jar文件并点击OK,然后点击另一个OK按钮确认

      4. 可以在“External Libraries”文件夹中查看jar文件

      【讨论】:

      • 我实际上在“模块”窗格中创建了一个新模块(例如命名为“JarsForLogging”),然后将我需要的所有 jars(位于远离项目树的某个目录中)添加到这个新模块并将罐子标记为“导出”。最后,我将新创建的 Module 添加到原始 Module 的依赖项中。这样更有层次感。
      • 另外:确保为.jar 文件正确设置了文件系统权限。在 Linux 或 MacOS 上使用chmod 修改它们。
      • 在 2018 年(年份和 IntelliJ 版本)中仍然有效。谢谢你。这样我就可以从 IntelliJ 中加载和使用 Armed Bear Common Lisp 库,太棒了!
      • 是的。也适用于我的 IntelliJ。谢谢!
      • @don_Gunner94,通过命令行,您还应该提供这样的 jar:javac -cp ".:/my/path/file.jar;" MyProgram.java
      【解决方案9】:

      在这里找到了一些很好的帮助。但是,尽管正确加载了 JAR,我仍然无法使其工作。后来我发现我不小心在文件结构而不是常规文件夹中创建了模块,并且这个模块是在项目设置中预先选择的。

      这是脚印:

      文件 -> 项目结构 -> 模块 ->(如果有更多,请选择适当的模块)-> 依赖项 -> + -> JAR 或库

      【讨论】:

        【解决方案10】:

        如果未正确添加到项目 gradle 文件中,则无法在任何程序中直接使用库。

        这可以在 inteli J 等智能 IDE 中轻松完成。

        1) 首先作为约定,在您的项目 src 文件下添加一个文件夹名称“libs”。 (这可以使用 IDE 本身轻松完成)

        2) 然后将您的库文件(例如:.jar 文件)复制或添加到名为“libs”的文件夹中

        3) 现在您可以在 libs 文件夹中看到库文件。现在右键单击文件并选择“添加为库”。这将修复您程序中的所有相关文件,并且库将直接供您使用。

        请注意:

        每当您向项目添加库时,请确保项目支持该库

        【讨论】:

          猜你喜欢
          • 2023-01-02
          • 1970-01-01
          • 1970-01-01
          • 2011-08-27
          • 2017-07-01
          相关资源
          最近更新 更多