第一次尝试通过Maven / Intellij设置JPOS Q2,遇到错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/osgi/framework/BundleException
at Q2_Main.main(Q2_Main.java:6)
Caused by: java.lang.ClassNotFoundException: org.osgi.framework.BundleException
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 1 more
Process finished with exit code 1
我通过maven下载了JPOS,我尝试查看了许多线程,但无法自行解决该错误
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Q2_JPOS_TEST</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.jpos</groupId>
<artifactId>jpos</artifactId>
<version>2.1.6</version>
</dependency>
</dependencies>
</project>
我在我的外部库中看到它
jpos in external library
import org.jpos.q2.Q2;
public class Q2_Main {
public static void main(String[] args){
Q2 q2 = new Q2("src/main/java/deploy");
q2.start();
}
}
2条答案
按热度按时间8tntrjer1#
我检查了maven仓库,你正在尝试使用的库jpos 2.1.6(https://mvnrepository.com/artifact/org.jpos/jpos/2.1.6),我发现它有一系列的运行时依赖项,从你发布的stacktrace判断,你似乎错过了
org.osgi.core 6.0.0
,确保你的类路径中有所有需要的运行时依赖项。kadbb4592#
下面是我为调整您的代码所做的一步一步的操作:
1.创建一个空文件夹
/tmp/test-jpos
1.将文件
pom.xml
与您共享的内容写入其中。1.在IntelliJ菜单文件-〉打开中,打开
/tmp/test-jpos
文件夹1.创建目录
src/main/java
1.在该目录中创建包含共享内容的文件
Q2_Main.java
。1.点击播放运行按钮(绿色三角形)运行项目
有了这些台阶,它跑得还可以。
然而,这不是运行
Q2
的推荐方式,我将在后面对此进行详细介绍。