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

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

error: package net.sourceforge.barbecue does not exist

这怎么可能呢?

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


当前回答

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

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

其他回答

对我来说奏效了:

再输入 使缓存无效/重新启动 重建项目

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

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

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

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

遵循以下步骤:

Ctrl+Shift -> Type Invalidate Caches ->检查所有选项,除了:Ask before… 高级菜单->构建->重建项目

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路径。