我正在尝试编写一个用 java 编写的 openHab2 绑定。我是一个 C++ 人,Java 对我来说是新手。有问题的代码如下所示:
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
...
@Override
public void initialize() {
...
CredentialsProvider credsProvider = new BasicCredentialsProvider();
...
}
我将 org.apache.httpcomponents.htpclient_4.5.2.v20170210-0925.jar 作为外部 jar 添加到构建路径中,并且程序构建没有任何问题。这个项目使用我也不熟悉的 Maven 作为构建系统,所以我添加了:
<dependencies>
<dependency>
<groupId>org.apache.httpcomponent</groupId>
<artifactId>httpclient</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
到 pom.xml。
当我运行系统时,我收到此错误:
2018-05-20 09:51:38.574 [错误] [.icAbstractInvocationHandler:101] - 在“org.openhab.binding.testbinging.internal.TestBingingHandler@728656fc”上调用方法“ThingHandler.initialize()”时发生错误: org/apache/http/impl/client/BasicCredentialsProviderjava.lang.NoClassDefFoundError: org/apache/http/impl/client/BasicCredentialsProvider at org.openhab.binding.testbinging.internal.TestBingingHandler.initialize(TestBingingHandler.java:63)
2018-05-20 09:51:38.576 [错误] [.c.thing.internal.ThingManager:700] - 初始化事物'testbinging:sample:0ac3dcf3'的处理程序时发生异常:org/apache/http/impl/client /BasicCredentialsProviderjava.lang.NoClassDefFoundError: org/apache/http/impl/client/BasicCredentialsProvider
在我未经训练的眼睛看来,运行时类路径设置不正确。
我正在使用 eclipse-oxygen 版本 Oxygen.3a Release(4.7.3a),内部版本号:20181405.1200 和 $ mvn -version Apache Maven 3.3.9 Maven 主页:/usr/share/maven Java 版本:1.8.0_171,供应商: Oracle Corporation Java 主页:/usr/lib/jvm/java-8-openjdk-amd64/jre
谢谢,史蒂夫 默认语言环境:en_US,平台编码:UTF-8 操作系统名称:“linux”,版本:“4.9.0-5-amd64”,arch:“amd64”,家族:“unix”