簡體   English   中英

首次運行db2triples時的主類異常

[英]main class exception when running db2triples for the first time

我正在嘗試第一次使用db2triples,這是一個java / maven項目。

我從github頁面上獲得了有關它的信息。

到目前為止,我已經執行了以下步驟:

  1. cd /programs/db2triples-master
  2. vim pom.xml並添加了db2triples依賴項
  3. mvn compile
  4. mvn package
  5. mvn dependency:copy-dependencies
  6. java -cp target/dependency/*.jar:target/db2triples-1.0.3-SNAPSHOT.jar net.antidot.semantic.rdf.rdb2rdf.main.Db2triples

我得到這個錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2693)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3040)
    at java.lang.Class.getMethod0(Class.java:3010)
    at java.lang.Class.getMethod(Class.java:1776)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more

谷歌搜索后,這可能是類路徑錯誤,但是我不確定。 要運行此應用程序需要做什么?

根據您鏈接的github頁面,您應該獲得所需的依賴關系

需要依賴

 OpenRdf Sesame > 2.6.x - http://www.openrdf.org/ Commons-cli > 1.2 - http://commons.apache.org/cli/ Commons-logging > 1.1.1 - http://commons.apache.org/logging/ 

或者,如果您使用的是Maven,則將db2triples作為依賴項添加到pom

 <dependency> <groupId>net.antidot</groupId> <artifactId>db2triples</artifactId> </dependency> 

該錯誤意味着在運行db2triples時,找不到所需的依賴項。

解決此問題的一種方法是將所需的依賴項添加到類路徑中。 apache commons cli jar實際上位於目標/依賴項中嗎?

解決此問題的另一種方法是構建一個嵌入了所有依賴項的jar。 程序集插件作為具有依賴關系的jar描述符。 將此添加到pom中的<build><plugins>部分。

  <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.5.3</version>
     <configuration>
        <descriptorId>jar-with-dependencies</descriptorId>   
     </configuration>
  </plugin>

要構建它mvn assembly:assembly

您應該將另一個jar放在名為db2triples-<version>-jar-with-dependencies.jar 然后運行該應用程序,只需運行java -cp dbp2triples-<version>-jar-with-dependencies.jar net.antidot.semantic.rdf.rdb2rdf.main.Db2triples

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM