ChatGPT解决这个技术问题 Extra ChatGPT

为什么 IntelliJ 给我“包不存在”错误?

我正在尝试使用烧烤条形码打印库。我已经通过项目结构添加库成功地将库添加到 IntelliJ。然后我导入了包并编写了方法,这没有给我任何错误。这些包在课堂上可用。

但是当我编译它给我错误:

error: package net.sourceforge.barbecue does not exist

怎么会这样?

我在 ubuntu 中编码,还有其他地方需要添加库吗?

你确定这个 JAR 在你的项目结构的库部分吗?
验证库的范围(在项目结构窗口中)是否为 Compile。如果设置为 Provided 的范围,它将导致您描述的行为。
如果您在 maven 配置文件下有依赖关系,请确保在编译项目时在 maven 树“配置文件”中选择正确的配置文件。
如果您在项目中使用 Gradle,请检查以下回复:stackoverflow.com/a/48930705/10805602
这个解决方案对我有用。按照给定的 link

M
Mehraj Malik

只是重新导入不起作用。以下为我工作。

文件 -> 使缓存无效/重新启动

然后

构建 -> 重建项目

这将重新导入 Maven 项目。

注意:您需要使缓存无效并重建项目。


像魅力一样工作,但你能解释一下为什么会这样吗?
好的,仅供查看此答案的其他人使用->请注意,您需要使缓存无效并重建项目。我使用我的直觉,只做了第一部分,因为我确实在重启后看到了 IDEA“重建”和索引,但我认为这还不够。您需要显式重建项目。
@Raj Rajeshwar Singh Rathore 这是因为 maven(或 gradle,如果您使用 gradle)会记住/缓存先前构建的部分内容,以便在您每次要求它构建项目时更快地构建。所以当你第一次得到错误时,maven 记得这个模块丢失了。
OMG,2022 年还是有用的!
m
mattalxndr

我尝试“Maven > Reimport”,但唯一真正修复它的是关闭项目,删除 .idea 目录,然后重新打开项目。


这有帮助,但问题会在一段时间后再次出现。
我对 IntelliJ 2018 和 Gradle 也有类似的问题。它找不到 Spring 包。这样做为我解决了这个问题。
重新导入:按Ctrl+Shift+A查找动作,输入“reimport”,会看到“Reimport All Maven Projects”。
尤里卡,终于有用了!世界上所有的重新进口都没有解决它。甚至没有“使缓存无效并重新启动”,但这确实......
我认为现在是“重新加载所有 Maven 项目”。当使缓存无效并且重建没有做任何事情时,它也对我有用。
h
humanity

右键单击您的项目/Maven(底部)/重新导入

编辑,很久以后:当我安装了 Clover 插件时,我也看到这种情况发生得更频繁。像一个坏习惯一样放弃那个插件!


f
fxnn

现有的 13 个答案中没有一个对我有用。但是,我可以通过首先删除所有模块来解决此问题:

打开文件>项目结构...,转到模块选项卡,选择所有模块并按删除按钮,

然后从 Maven 工具窗口中删除所有剩余的 Maven 模块:

选择所有模块,右键单击它们,按删除项目,

然后在 Project 工具窗口中再次添加它们:

右键单击根 pom.xml,按添加为 Maven 项目,

现在忽略来自 Maven 工具窗口的任何被忽略的模块:

选择所有被忽略的(灰色)Maven 模块,右键单击它们,按 Unignore,

最后使用 Build > 重建Rebuild project。这假定 mvn clean install 已经发生。


在 IntelliJ Ultimate 2019.1.2 上工作!无效缓存不起作用。重新导入项目不起作用。这个解决方案做到了!
刚刚在 2019.1.3 上测试过,是的,这是一个可行的解决方案
适用于 2019.3 版!
更新到 2021.1 后为我工作
我不知道为什么会这样,但确实如此!谢谢! IDEA 版本 2022.1.2
d
daemon_nio

就我而言,唯一有效的是:

mvn idea:idea

好消息是您不必删除 .idea 文件夹或 .iml 文件并放松所有配置。一切都会被保留。

(可能像 gradle idea 这样的东西也适用于 gradle)。


尽管它暂时解决了我的问题并且我投了赞成票,但后来我发现该命令已过时并且可能会导致问题。插件使用的官方页面声明 Apache Maven IDEA 插件(已退休)。 maven.apache.org/plugins/maven-idea-plugin/usage.html
A
Andrew
menu -> build -> Rebuild Project

为我工作

(没有这一步使缓存失效没有帮助)


同样的事情帮助了我-右键单击项目->重建模块
k
krishna Ram

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


v
vikingsteve

如果您将库添加到项目结构中(而不是通过 maven,那会有所不同),请确保将其作为相关模块的依赖项包含在内。

项目结构 -> 模块 -> 依赖项


P
Pratik Nagelia

以上方法都试过了,还是不行。最后运行 maven clean install 解决了它!


疯了,但这个实际上对我有用......即使 org.mapstruct (1.5.1-FINAL) 在列表中无处不在,它根本不会使用它来构建。 mvn clean install 确实有效...
B
Belphegor

退出 IntelliJ,删除每个 .idea 目录:

rm -Rf **/.idea/ 

并重新启动。


这有助于社区版 2017.2。在此之后我还必须导入 gradle 项目。 2017年,这个问题仍然存在。
J
Jianwu Chen

这是一个非常烦人的问题,经常发生。特别是在切换到不同的 git 分支之后。解决此类问题浪费了我太多时间。我已经尝试了以上所有方法。但是我找不到可靠的方法。在这里,我只是总结了那些可能对我的情况有所帮助的步骤。 Jetbrains,请修复此问题以节省您客户的宝贵时间。

确保执行成功的命令行构建(如果 UT 失败,请使用 -Dmaven.test.skip=true 忽略 UT。在“Maven 项目”视图中,尝试使用“重新导入”所有 maven 项目。在文件菜单中,使用“Invalidate Caches”删除.idea文件夹,基本上是从头开始创建工作区。(这是解决这个问题的唯一可靠方法)


尝试了所有这些,唯一对我有用的是#4,关闭 IntelliJ,删除 .idea 文件夹,然后重新加载项目。创建新的 git 分支后,这发生在我身上。
听起来像是 intellij 的错误,我想知道是否为此创建了问题?
同意,当任何与 git 相关的操作在 IntelliJ 之外执行时发生在我身上。同时,它为我构建得很好,只有在我为热交换执行 Build > Recompile '' 时才会发生。因此,我无法接受像“打开/关闭 IntelliJ”、“无效/重建项目”等解决方案。但这让我很生气。
I
Israel Varea

就我而言,问题在于 IntelliJ 和 settings.xml 文件中有不同的存储库目录配置。

检查两个存储库目录是否相同:

IntelliJ (File > Settings > Build,Execution,Deployment > Build Tools > Maven )

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

settings.xml(通常在 C:\Users\myuser\.m2/home/myuser/.m2 中)

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  ...
  <localRepository>C:\Users\myuser\.m2\repository</localRepository>
  ...
</settings>

修复目录后运行:

为所有项目生成文件夹和更新源

https://i.stack.imgur.com/5wczO.png

重新导入所有 Maven 项目

https://i.stack.imgur.com/8TXhK.png


在我的 settings.xml 中添加 localRepository 行为我解决了这个问题。我使用 Intellij IDEA 2021.1 社区版 Build#IC-211.6693.111
S
Srikanth Reddy

使缓存无效/重新启动,然后构建 -> 重建项目对我有帮助


A
Ahmed Salem

我尝试了所有值得赞赏的答案,但没有一个能解决我的问题!

根据 Intellij 社区的说法,2020.1 和 2020.1.1 版本中的 Maven 版本存在一个错误:https://youtrack.jetbrains.com/issue/IDEA-237320?_ga=2.235486722.203129946.1591253608-322129264.1584010541

请尝试在 2019.3.4 版本上运行(它从第一次为我工作)

你可以从这里下载

https://www.jetbrains.com/idea/download/previous.html?_ga=2.190043688.203129946.1591253608-322129264.1584010541


这个关于 path.macros.xml 文件的解决方法对我有帮助:youtrack.jetbrains.com/issue/… 2020.1 现在可以使用。
S
SystemsInCode

类似于 cvdr。过高的 Java 版本可能是问题所在。

一位同事在我们的测试项目中遇到了多个 java 源的问题。她刚刚更新到后来的 Intellij,当我们调查所有重建选项都不起作用但 Intellij 似乎已将项目 Java 设置“碰撞”到 Java 11(我猜升级安装时它需要最高安装版本?)将其设置回Java8,项目编译成功。

转到文件>项目结构>项目设置>项目并在下拉列表中选择正确的。


M
MeirDayan

这是一个对我有用的解决方案:禁用“使用 --release 选项进行交叉编译,如下面 intellij idea: got Settings -> Build,Execution,Deployment -> Compiler -> Java Compiler 并禁用:

使用“--release”选项进行交叉编译(java 9 及更高版本)


L
Leif Liu

更改 pom 后出现此错误,并通过执行修复它:

mvn idea:module

这个对我有用


C
Conrad Damon

作为一个偶尔需要做 Java 工作的人,这很烦人。不可避免的是,自从我上次在 IntelliJ 中运行我们的服务器以来,已经添加了包,并且它无法构建。我发现似乎是一个更简单的解决方案:只是不要在 IntelliJ 中构建。通过 Maven 从命令行构建,然后确保运行配置没有将构建列为“启动前”任务。


O
Onat Korucu

我试过了

“Maven > Reimport” 删除 .idea 目录,重新打开项目。 File -> Invalidate Caches/Restart 然后 Build -> Rebuild Project 删除本地 .m2 文件夹中的内容,然后再次下载依赖项。在 Maven 控制台中运行 mvn idea:idea (虽然此命令已过时,但我不得不尝试。)

在不同的组合中。

但是从 Intellij 2020 版本到 2019 版本解决了我的问题。


T
Timbuck

我在 IntelliJ 2020.3 中遇到了这个问题,并尝试了无效缓存选项并重建,但问题仍然存在。唯一修复它的是重命名包并将其重命名回原来的名称。


G
Graeme Moss

我遇到了同样的问题,通过将设置中的“Maven 主目录”从“捆绑”更改为我本地安装的 maven,为我解决了这个问题。也许这在某处触发了某种刷新,因为我几个月没有更改此设置而没有任何问题。


A
Andronicus

这里发生的是特定包在缓存中不可用。重置将有助于解决问题。

File -> Invalidate Caches /Restart Goto terminal 并再次构建项目 ./gradlew build

这应该再次下载所有丢失的包


J
John

我的单元测试也有同样的问题。我在我的主分支上创建了测试,并且无论我使用什么分支,早期一切都运行良好。但是当我再次切换到 master 分支时,测试不再起作用。帮助我的是:

关闭 intellij -> 从目录 -> 中删除 .idea 文件通过 pom.xml 再次打开项目(idk,如果你打开项目的方式很重要,但是当我第一次尝试通过 intellij 正常打开它时,它仍然是不起作用)-> 从右侧菜单重新加载所有 maven 项目 -> rebuild 项目就是这样,现在一切正常


S
Saleh Hamadeh

我有同样的问题。我通过应用 android-apt 插件 https://bitbucket.org/hvisser/android-apt 修复了它


它说存储库已移至 github.com/littlerobots/android-apt
D
Dotista

Maven 重新导入、重建和无效缓存不起作用。我通过打开终端并在根文件夹项目中执行 maven clean install 解决了这个问题。 (IntelliJ 已打开,当 maven 工作时,我能够看到 IDE 更新并触发重新索引)


c
cmlonder

如果您正在尝试建议的方法但仍然没有机会,请确保您的订单:

删除您的 .idea/ Invalidate and Restart Cache 之后从您的 maven 工具导入 maven 项目

如果您在删除 .idea/ 后没有使缓存失效并重新启动缓存,Intellij 会继续生成它,这在我的情况下会一直出错。


b
barth

如果您不想破坏 .idea,可以尝试:

打开项目结构 > 模块

取消将 java 文件夹标记为源文件夹

应用/重建

然后再次将其标记为源文件夹

重建


Z
Zhwt

如果您遇到非常奇怪的“无法解决 javasun 软件包问题”,请尝试以下操作:

打开 Project Structure 并将 Project SDK 更改为另一个版本,例如:java 8 -> 9; 11->13 等,等到它重新索引所有 jdk 的 jars。同一版本的jdk之间切换可能不起作用! (例如:jetbrains jdk11 -> openjdk 11)打开一个新项目(或创建一个空项目);暂停新项目的索引;关闭旧的;开始索引;打开旧项目并暂停新项目的索引并等待。


c
cvdr

我尝试用 JDK 12 编译一个 java 8 项目并且有同样的问题。以前的答案都没有解决我的问题。

我将 o Shortel 命令行更改为“JAR Manifest”,并且工作起来很有吸引力。

https://i.stack.imgur.com/4k6yW.png


A
Antara Datta

上述解决方案对我不起作用。我必须在 pom.xml 中显式添加依赖项。

只需在资源/库下添加您的 jar,然后将其作为依赖项添加到您的 pom.xml 中,例如:

        <dependency>
            <groupId>your-jar-group-id</groupId>
            <artifactId>artifact-id</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/library/name-of-jar.jar</systemPath>
        </dependency>

如果上述方法均无效,请尝试此操作。