我正在尝试使用烧烤条形码打印库。我通过project structure add library成功将库添加到IntelliJ。然后我导入了包并编写了方法,这没有给我任何错误。这些包在类中可用。

但是当我编译时,它会给我一个错误:

error: package net.sourceforge.barbecue does not exist

这怎么可能呢?

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


当前回答

我试着

“Maven >重新导入” 删除.idea目录,并重新打开项目。 文件->使缓存无效/重新启动然后构建->重建项目 删除本地.m2文件夹内的内容,并重新下载依赖项。 在Maven控制台中运行mvn idea:idea(虽然这个命令已经过时了,但我不得不尝试。)

在不同的组合中。

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

其他回答

我在2022.1.4版本遇到了同样的情况。我尝试了第一个答案的所有解决方案,除了删除“。想法”文件夹中。 即使很多朋友都提到了这个解决方案,我也找不到这个文件夹,我到处找用户配置文件和AppData文件夹。这个文件夹实际上是在项目文件夹本身下创建的。

我关闭了项目,删除这个文件夹后重新打开。一切都恢复正常了。感觉就像“英特尔”丢失了,IDE只是“lij”一段时间。哈哈

如果您向项目结构中添加了一个库(而不是通过maven,这是不同的),请确保它是作为相关模块的依赖项包含的。

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

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

只需将jar添加到resources/library下,然后将其作为依赖项添加到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>

如果以上方法都不起作用,试试这个方法。

如果你遇到了非常奇怪的“无法解决java、sun包的问题”,试试下面的方法:

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

这里有一个对我有效的解决方案: 禁用交叉编译的“Use -release”选项,如下所示: 得到设置->构建,执行,部署->编译器-> Java编译器和禁用:

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