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

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

error: package net.sourceforge.barbecue does not exist

这怎么可能呢?

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


当前回答

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

我把Shortel命令行改为“JAR Manifest”,工作起来很有魅力。

其他回答

退出IntelliJ,删除所有。idea目录:

rm -Rf **/.idea/ 

并重新启动。

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

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

在我们的测试项目中,一个大学生在使用多个java源代码时遇到了这个问题。她刚刚更新到一个更高的Intellij,当我们调查的时候,没有一个重建选项有效,但Intellij似乎已经“碰撞”了项目Java设置到Java 11(我猜它在升级安装时需要最高的安装版本?)将其设置回Java8,项目编译成功。

点击文件>项目结构>项目设置>项目,在下拉菜单中选择正确的。

这是一个经常发生的非常烦人的问题。尤其是在切换到不同的git分支之后。它浪费了我太多的时间来排除这种问题。以上方法我都试过了。但我找不到可靠的方法。在这里,我总结了那些可能对我的情况有所帮助的步骤。Jetbrains,请修复此问题以节省客户的宝贵时间。

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

package com.example;

import com.sun.jna.Library;
import com.sun.jna.Native;

public class C {
    public interface Kernel32 extends Library {
        public void OutputDebugStringA(String Text);
        public void DebugBreak();
        public void Sleep(int a);
    }

    public static int incint(int in1)
    {
        testpkg.xxxBird.Say("xxxee"); //only use this statement to call external lib
                                      //I don't use "import" statement.
        return in1*2;
    }
}

我正在使用intellij的想法。 您需要在项目依赖项中添加testpkg路径。