当前位置: 首页 > 知识库问答 >
问题:

@Slf4j找不到符号日志

艾志尚
2023-03-14

我知道,针对基本相同的错误发布了多个问题。然而,我认为这些问题与我的不同。

简而言之,我正在尝试编译oci-java-sdk附带的示例之一。它不编译。似乎一个jar文件左右有LOG变量,所以我想知道在哪里可以找到jar文件。

以下是细节。首先,我使用的是Oracle Linux,并用RPM安装了oci java sdk。接下来,我将整个examples目录复制到我的主目录。下面是我的类路径的样子:

$ echo $CLASSPATH
:/usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-1.6.1.jar:/usr/lib64/java-oci-sdk/third-party/lib/*

出于工作上的需要,我尝试构建如下示例:

$ javac -Xlint -cp $CLASSPATH:$PWD/lombok.jar:/usr/share/java/*:/usr/share/java/slf4j/* ./EventsServiceExample.java

如上所示,我下载了lombok。jar来自lombok项目网站。javac命令失败如下:

$ javac -Xlint -cp $CLASSPATH:$PWD/lombok.jar:/usr/share/java/*:/usr/share/java/slf4j/* ./EventsServiceExample.java 
./EventsServiceExample.java:83: error: cannot find symbol
        LOG.info("Number of rules in compartment {} is {}", compartmentId, rulesList.size());
        ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:135: error: cannot find symbol
            LOG.info(
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:143: error: cannot find symbol
            LOG.error(
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:164: error: cannot find symbol
            LOG.error("Failed to retrieve the Rule {}", ruleId, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:188: error: cannot find symbol
            LOG.info("Rule {} was updated", ruleId);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:192: error: cannot find symbol
            LOG.error("Failed to update rule {} with displayName {}", ruleId, newDisplayName, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:217: error: cannot find symbol
            LOG.error("Failed to list rules in compartment {}", compartmentId, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:232: error: cannot find symbol
            LOG.info("Rule {} was deleted", ruleId);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:234: error: cannot find symbol
            LOG.error("Failed to delete rule {}", ruleId, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
9 errors

这让我觉得它找不到日志,它一定在某个地方与slf4j有关。我已经安装了所有看起来像RPM的slf4j,但仍然没有运气。

下面的链接是其他人抱怨相同错误消息的一个例子:intellij-14-lombok-slf4j-cannot-find-symbol-log

我发现了更多类似的东西。大多数情况下,似乎每个IDE都有一些库

我不应该使用任何IDE。我应该从命令行编译源代码。因此,我想我必须找到包含变量LOG的jar文件的上游位置。接下来,我希望能找到一个有罐子的RPM。

共有2个答案

裴威
2023-03-14

虽然未设置为默认值,但可以通过配置lombok来覆盖字段名。日志构建样本时,fieldName作为日志

样本使用以下龙目石。使用OCI Java SDK进行配置:https://github.com/oracle/oci-java-sdk/blob/master/lombok.config

齐健柏
2023-03-14

Lombok和Groovy的@Slf4j注释都添加了一个名为log的成员,而不是LOG

 类似资料:
  • 我在Eclipse中使用了lombok插件,并在java编译器下启用了Eclipse中的注释处理,但当我使用@Slf4j注释时仍然无法识别日志语句。 我们还需要做其他设置吗?

  • 我有一个maven项目,从命令行构建时没有任何问题。然而,当我使用IntelliJ构建它时,我得到了错误: 列在库下,并注明已下载和可用。 知道为什么maven可以通过命令行构建,而不是通过IntelliJ构建,以及如何解决这个问题吗?

  • DBHelper。JAVA LoginSevlet.java 我正在尝试访问LoginServlet中的DBHelper类,而编译i做了javac DBHelper.javajavac-cp"C:\User\dell\Desktop\MYServlet\WEB-INF\lib\servlet-api-2.5.jar;"LoginServlet.javaLoginServlet.java:13:错误

  • 问题内容: 如果这是一个怪异的问题,我感到很抱歉,但是我刚刚开始OOP,并遇到了一个我应该制作的简单菜单驱动数学程序。我清除了编译器给我的所有错误,但是现在它给了我大约14个新错误,其中大多数被描述为“找不到符号”。这是我的代码: 这是新的编译器输出: 问题答案: 您从未在方法的主体中定义变量。尝试在方法中添加。简单地定义的变量并 没有 放弃对它的访问。如果要避免多次创建实例,可以执行以下操作 然

  • 问题内容: 我正在尝试为计算器编写第一个单元测试,但是NetBeans表示找不到符号和注释。 我应该包括一些东西吗? 我正在使用NetBeans 7.3.1和W7。 编辑:谢谢大家,将其导入为静态帮助。测试注释仅需包括 导入org.junit.Test; 问题答案: 是静态方法。由于不能使用静态方法而没有以静态方式显式导入它们,因此必须使用以下两种方法之一: 要么: 因为有点不同。是的注释,您可以