我有一个maven项目,在命令行没有问题的情况下构建.但是,当我使用IntelliJ构建它时,我收到错误:
java: FileName.java:89: cannot find symbol
symbol : variable log
Run Code Online (Sandbox Code Playgroud)
java文件中没有定义或导入日志,但有一个
@Slf4j
final public class FileName {
Run Code Online (Sandbox Code Playgroud)
应该定义日志类的类体之前的语句.
在项目结构窗口中,类为:
Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
Run Code Online (Sandbox Code Playgroud)
列在库下,表示已下载并可用.
知道为什么这会通过命令行与maven一起构建,而不是通过IntelliJ以及如何解决问题?
我知道针对基本相同的错误发布了多个问题。但是,我不认为它们与我的问题相同。
简而言之,我正在尝试编译 oci-java-sdk 附带的示例之一。它无法编译。看起来像一个 jar 文件左右有 LOG 变量,所以我想知道在哪里可以找到该 jar 文件。
详细信息如下。首先,我使用 Oracle Linux,并使用 RPM 安装了 oci-java-sdk。接下来,我将整个示例目录复制到我的主目录。我的 CLASSPATH 如下所示:
$ echo $CLASSPATH
:/usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-1.6.1.jar:/usr/lib64/java-oci-sdk/third-party/lib/*
Run Code Online (Sandbox Code Playgroud)
根据我工作的需要,我尝试构建如下示例:
$ javac -Xlint -cp $CLASSPATH:$PWD/lombok.jar:/usr/share/java/*:/usr/share/java/slf4j/* ./EventsServiceExample.java
Run Code Online (Sandbox Code Playgroud)
如上所示,我是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 …Run Code Online (Sandbox Code Playgroud)