ChatGPT解决这个技术问题 Extra ChatGPT

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

在 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 您需要了解类路径的工作原理,并且您可能需要提供比您预期更多的内容。
我建议不要使用您尝试使用的方法。最好将您的 JAR 上传到任何工件平台,例如 jFrog,并像从 maven 或 gradle 一样从此类平台获取您的工件。我建议您遵循“12 要素原则”作为“依赖项(显式声明和隔离依赖项)”

T
Thorbjørn Ravn Andersen

https://i.stack.imgur.com/ZlENo.png

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

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


另外,考虑添加一个 lib 文件夹,并使用“附加 Jar 目录”,这将添加 lib 文件夹中的所有 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...
R
ROMANIA_engineer

IntelliJ IDEA 15 和 2016

File > Project Structure... 或按 Ctrl + Alt + Shift + S Project Settings > Modules > Dependencies > "+" sign > JARs or directory... 选择 jar 文件并单击 OK,然后单击另一个 OK 按钮确认可以在“External Libraries”文件夹中查看jar文件


我实际上在“模块”窗格中创建了一个新模块(例如命名为“JarsForLogging”),然后将我需要的所有罐子(位于远离项目树的某个目录中)添加到这个新模块并将罐子标记为“出口”。最后,我将新创建的 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
u
user1742529

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

https://i.stack.imgur.com/BwwlE.png


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

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

buildscript {
    ...
}
...

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

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

https://i.stack.imgur.com/zVzAR.png

然后你把你的罐子放在那里,你很高兴:-)


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

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

我的源代码中通常有一个 /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 中手动安装它。没有理由不这样做。
A
Ali Hesari

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

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

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

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


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

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

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

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

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

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

请注意:

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


R
Rolland

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

这是足迹:

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


k
kgui

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

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

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

https://i.stack.imgur.com/d9Cfj.png


j
jumping_monkey

文件 > 项目结构 项目设置 > 模块 > 依赖项(选择其中之一) 1 JAR 或目录... 2 库... 3 模块依赖项... 应用 + 确定

https://i.stack.imgur.com/UPJVk.png

导入java类


A
Arefe

您可以将 JAR 放在 libs 文件夹中并从那里添加它。这可以在 IntelliJ 中以两种不同的方式完成:

右键单击 libs 文件夹并从那里添加:

https://i.stack.imgur.com/JnhIj.png

从项目结构中添加 JAR:

https://i.stack.imgur.com/mSQcH.png


q
qingmu

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

<dependency>
     <groupId>com.xxx</groupId>
     <artifactId>xxxx-server</artifactId>
     <version>1.0.0</version>
     <scope>system</scope>
     <systemPath>${pom.basedir}/src/libs/xxx-server-1.0.0.jar</systemPath>
</dependency>

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

https://i.stack.imgur.com/jQnyF.png

这是我的个人经历。我希望他们能帮助你