将外部jar(lib / *。jar)添加到IntelliJ IDEA项目的正确方法


733

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

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

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


我在IntelliJ终端中运行程序时遇到问题。我已经使用import语句来使用程序中需要的类。当我在IDE中运行它时,它运行良好。但是,当我尝试从命令行%javac MyProgram.java进行编译时,它显示错误:找不到符号
don_Gunner94

Answers:


1304

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

  1. File从工具栏点击
  2. 项目结构(CTRL+ SHIFT+ ALT+ SWindows / Linux上,+ ;在Mac OS X)
  3. 在左侧面板中选择模块
  4. 依赖项选项卡
  5. '+'→JAR或目录

98
另外,考虑添加一个lib文件夹,并使用“附加Jar目录”,这将在lib文件夹中添加所有jar。对于大型项目,这使您不必单独选择每个罐子。
joeslice

16
供以后参考:该“添加”按钮位于窗口的右侧,我花了过多时间寻找它,然后才找到此帖子并考虑调整窗口的大小。(这是在OSX 10.6.5上发布的...)
Daniel Dickison 2010年

7
@joeslice仅在JAR位于目录根目录中时才起作用,对吗?它似乎不适用于'lib'内子目录内的JAR。
opyate 2011年

6
在IJIdea 13中,用“ +”>代替“ add”。
2014年

4
我正在使用IDEA 14.0.2。而不是添加有+符号。单击+之后,有3个选项:1. JAR或目录2.库... 3.模块依赖性...
Ripon Al Wasim 2015年

238

IntelliJ IDEA 15和2016

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

    文件>项目结构

    或按Ctrl+ Alt+ Shift+S

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

    模块>依赖关系> JAR或目录

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

    在此处输入图片说明

    在此处输入图片说明

  4. 您可以在“外部库”文件夹中查看jar文件

    在此处输入图片说明


实际上,我在“模块”窗格中创建了一个新模块(命名为“ JarsForLogging”),然后将我需要的所有jar(位于远离项目树的某个目录中)添加到此新模块中,并将这些jar标记为“出口”。最后,我将新创建的模块添加到原始模块的依赖项中。这样有点层次。
David Tonhofer

另外:确保为文件正确设置了文件系统权限.jar。用于chmod在Linux或MacOS上进行修改。
JJD

4
仍可在2018年使用(年份和IntelliJ版本)。谢谢。这样,我就可以从IntelliJ内加载和使用Armed Bear Common Lisp库了,太棒了!
杰森·罗宾逊

是的 我的IntelliJ也可以很好地工作。谢谢!
Bms bharadwaj

1
@ don_Gunner94,通过命令行,您还应该提供这样的jar:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

117

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

在此处输入图片说明


自Eclipse以来,最简单的方法和我们习惯的方法。
苏菲安

3
干净利落!!
阿纳西曼德罗·安德拉德

3
有点恼人的是,它仍然要求一个“名称”,那么,您可以在其中留下任何垃圾吗?
Divybyzero

这也对我有帮助!
Preeti Joshi

我在IntelliJ终端中运行程序时遇到问题。我已经使用import语句来使用程序中需要的类。当我在IDE中运行它时,它运行良好。但是,当我尝试从命令行%javac MyProgram.java进行编译时,它显示错误:找不到符号。–
don_Gunner94

20

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

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

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

我完全致力于Maven和Nexus的依赖性管理。

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


是的,但是如果Maven pom没有被称为pom.xml怎么办?然后好像我看不懂Maven依赖项。
user1001630

4
习惯上称它为pom.xml。请遵循约定并重命名文件。
duffymo

当罐子没有Maven仓库时,我仍然发现需要……但是,我不知道如何正确执行此操作。我了解如何添加目录,但我也不了解如何将其导入javadocs。当我将jar添加为单个文件时,它起作用,但如果添加目录,则不起作用。根本不可能吗?
ycomp 2015年

这是合理的建议。手动添加罐子很费时间,而且容易出错。您的依赖项应始终在pom.xmlMaven中或通过gradle 进行“通过代码”配置。
维京史帝夫

1
所有JAR都有一个仓库。如果它在公共或私人仓库中不可用,您可以将其手动安装在本地.m2中。没有其他理由。
duffymo

17

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

buildscript {
    ...
}
...

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

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

在此处输入图片说明

然后将罐子放到那里,就可以了:-)


我在IntelliJ终端中运行程序时遇到问题。我已经使用import语句来使用程序中需要的类。当我在IDE中运行它时,它运行良好。但是,当我尝试从命令行%javac MyProgram.java进行编译时,它显示错误:找不到符号。–
don_Gunner94

7

我使用这种方法,并且效果很好:

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

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

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


谢谢,这是唯一对我有用的东西!
Gregordy

我在IntelliJ终端中运行程序时遇到问题。我已经使用import语句来使用程序中需要的类。当我在IDE中运行它时,它运行良好。但是,当我尝试从命令行%javac MyProgram.java进行编译时,它显示错误:找不到符号。
don_Gunner94

5

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

这可以在像inteli J这样的智能IDE中轻松完成。

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

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

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

请注意:

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


3

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

这是足迹:

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


3

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

例如,要访问外部库中的类,您将要使用import关键字,后跟外部库的名称,并以点符号继续,直到到达所需的类为止。

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

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.