java - 在终端中编译 Java 程序导致日志错误
问题描述
我正在尝试在终端中编译一个 Java 程序:
包含所有导入的长版本:
javac -classpath bin:$OSPL_HOME/jar/dcpssaj5.jar:$OSPL_HOME/jar/dcpssaj5-sources.jar:$OSPL_HOME/jar/dcpssaj-osgi-bundle.jar:$OSPL_HOME/jar/dcpssaj-sources.jar:$OSPL_HOME/jar/dcpssaj.jar:$OSPL_HOME/jar/osplconf.jar:$OSPL_HOME/jar/tooling_common.jar:$OSPL_HOME/jar/dcpsprotobuf.jar:$OSPL_HOME/jar/cmdataadapter.jar:$OSPL_HOME/jar/cmapi.jar:$OSPL_HOME/jar/ddsface.jar:Libraries/httpclient-4.5.12.jar:Libraries/jersey-client-1.19.4.jar:Libraries/jersey-client-1.19.jar:Libraries/jersey-core-1.19.4.jar:Libraries/json-simple-1.1.1.jar:Libraries/json-simple-3.1.0.jar:Libraries/jsr311-api-1.1.1.jar:Libraries/mqtt-client-0.0.6.jar:Libraries/paho-mqtt-client-1.13.0.jar -sourcepath src/ src/afarcloud/Main/afarcloud_main.java
没有所有的进口:
javac -classpath bin:(jar_files) -sourcepath src/ src/afarcloud/Main/afarcloud_main.java
我已经添加了我认为所有必需的 jar,但是当我尝试在我的 Ubuntu 计算机上运行代码时,我收到以下与记录器相关的错误:
src/afarcloud/Log/UtilLog.java:3: error: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
^
src/afarcloud/Log/UtilLog.java:7: error: cannot find symbol
private static Logger log = Logger.getLogger(UtilLog.class);
^
symbol: class Logger
location: class UtilLog
src/afarcloud/Log/UtilLog.java:7: error: cannot find symbol
private static Logger log = Logger.getLogger(UtilLog.class);
^
symbol: variable Logger
location: class UtilLog
src/afarcloud/Log/UtilLog.java:10: error: cannot find symbol
log = Logger.getLogger(clase);
^
symbol: variable Logger
location: class UtilLog
4 errors
让我感到困惑的是,在 src/afarcloud 下没有名为“Log”的文件夹,所以我很困惑如何继续……非常感谢任何帮助,谢谢。
解决方案
您缺少对 org.apache.log4j 的 JAR 依赖。
当然,这个 JAR 可以有更多的依赖关系。这可能是无休止的游戏。也许您可以使用 Maven 和 mavenized 项目,它们会为您处理依赖关系树。
推荐阅读
- java - Android使其他类的视图无效
- c# - 当参数标记为 NotNullAttribute 时,我应该如何配置 ReSharper 以不抱怨空检查
- javascript - 无法让 npm 下载 jquery
- java - 非相关实体的存储库上的 JPQL 查询
- ios - 快速使用外部密钥加密数据
- sql - 如何检查值的最后 4 位数字是否在 SQL Server 的范围内
- wordpress - 我可以编写一个命令来关闭或关闭 WP_DEBUG 吗?
- java - Spring Boot ConditionalOnBean 注解
- javascript - 如何使网页/应用程序只能从存储在 NFC 标签上的链接访问
- python-3.x - 为什么字符串索引只有在作为 __main__ 运行时才必须是整数