IntelliJ 无法正确导入 Jars

问题描述 投票:0回答:9

我正在使用 IntelliJ 11.1.3,并且尝试以 jar 文件的形式附加两个外部库以在模块中使用。我已将它们添加到项目结构 -> 模块 -> 依赖项中,它们也在库下正确显示,但我无法将它们导入到我的源代码中。

我这里缺少一个步骤吗?我对 IntelliJ 还很陌生,以前只使用过 Netbeans,所以我有点迷失。我认为附加外部库并立即使用这些类很简单,但当我输入“导入”时,我什至没有在代码完成时获得库名称。

java import jar intellij-idea
9个回答
14
投票

你做得对,库是在模块依赖项中配置的。验证是否已添加正确的文件。

您应该能够在项目视图中的 Libraries 节点下浏览 jars。如果您在那里看不到 jar,则说明您的库配置不正确。如果您看到罐子,但看不到其中的类,则它们可能已损坏,请用有效的副本替换它们。

还要检查库是否已添加到您尝试导入和使用它们的正确模块的依赖项中。验证依赖项的范围,Compile很可能是您所需要的。

File
| 使缓存无效可能会在一切看起来正确但不起作用的情况下有所帮助。

如果没有帮助,请与图书馆分享一个示例项目来说明问题。


3
投票

您正在使用一个包。这些库将从默认包中使用。因此,将所有类移至默认包(即 src 文件夹)并删除所有包/导入语句。另外,不要使用 java.io,而是使用 In 或 Stdin 类来读取数据。


2
投票

我也遇到了这个问题,我所做的是关闭当前项目并重新创建/导入项目,然后导入 jars,它可以工作。我知道这并不明智,但这是一种直接而简单的方法。当我尝试了 CRAZYCODER 所说的所有内容但不起作用时。


1
投票

我在这里找到了解决方案 - https://intellij-support.jetbrains.com/hc/en-us/community/posts/207108385-IntelliJ-not-able-to-resolve-classes-of-external-Libraries- for-Maven-项目

这是我尝试过的并且有效 -

将 jar 添加到类路径似乎有帮助。 项目结构 > 平台设置 > SDK > 类路径 单击 + 并添加 jar


0
投票

如果 POM 中的 jar 依赖项没有范围(或者如果有范围,请将其更改为新的临时值),请添加一个临时值,例如‘编译’。 Intellij 将识别更改并刷新外部库。然后您可以删除临时范围。


0
投票

Maven 项目 -> 右键单击您的项目 -> Unignore


0
投票

我遇到了同样的问题,并尝试了上面和这里提到的几乎所有解决方案。对于我们大多数人来说,提到的解决方案应该有效。

我的情况有点不同,所以想在这里提一下。

在IntelliJ项目Maven存储库设置中,我发现即使是本地.m2存储库也无法更新。它尝试连接到

localhost
,特别是在我的情况下,
hosts
文件对
localhost
有不同的设置。

我改变了它,它开始工作,因为它现在能够连接到本地 .m2


0
投票

就我而言,当我在 POM.xml 中编译 .jar 文件时,有一段代码会生成 EXECUTABLE .jar,但要在其他应用程序中与角色库一起使用 .jar ,则必须是 NOT EXECUTABLE .jar(它没有 main.claass 等) .这对我们来说不是必须的)。实际上,当我从 POM.xml 中删除这个 cod 时 - 我的库开始工作得很好。

-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--                <configuration>-->
<!--                    <excludes>-->
<!--                        <exclude>-->
<!--                            <groupId>org.projectlombok</groupId>-->
<!--                            <artifactId>lombok</artifactId>-->
<!--                        </exclude>-->
<!--                    </excludes>-->
<!--                </configuration>-->
<!--            </plugin>-->

0
投票

就我而言,我正在为普林斯顿大学学习算法课程,他们提供的罐子为

algs4.jar
。然而,在导入时,我必须包含整个包名称
edu.princeton.cs.algs4
,这是我通过反编译jar文件了解到的。请务必检查您是否正确导入它,而不仅仅是像我一样通过 jar 名称

© www.soinside.com 2019 - 2024. All rights reserved.