2017-04-09 25 views
0

gaven、okhttp、okioの3つのライブラリを使用するMavenプロジェクト(Netbeans IDE)があります。私は、ターミナルとコマンド$ます。java -jar app.jarを通じて、プロジェクトをビルドした後で作成した.jarを実行しようとしていますが、私は下のエラーを取得しておいてください。実行方法-jarファイル(java.lang.NoClassDefFoundError)

Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/Callback 
    at it.bitrack.main.Main.main(Main.java:43) 
Caused by: java.lang.ClassNotFoundException: okhttp3.Callback 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 1 more 

私はすでに.jarファイルを追加しましたこれらの3つのライブラリのうち、app.jarと同じフォルダにあり、libsというサブフォルダにありますが、肯定的な効果はありません。

私はそれを動作させることができる理由を推測することができますか? Netbeansの内で実行されるとき、アプリがこれは私のPOMファイルである

...完璧に動作します:

<?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>it.bitrack</groupId> 
    <artifactId>BiTrackAssetSimulator</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.8.0</version> 
     </dependency> 

     <dependency> 
      <groupId>com.squareup.okhttp3</groupId> 
      <artifactId>okhttp</artifactId> 
      <version>3.6.0</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <!-- Build an executable JAR --> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>3.0.2</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <addClasspath>true</addClasspath> 
          <classpathPrefix>lib/</classpathPrefix> 
          <mainClass>it.bitrack.main.Main</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

ありがとうございました。

答えて

2

JARに依存関係を埋め込む必要があります。

はそうするようにMavenの依存関係のプラグインを使用します。https://maven.apache.org/plugins/maven-assembly-plugin/usage.html

例:次に

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <archive> 
     <manifest> 
     <mainClass>it.bitrack.main.Main</mainClass> 
     </manifest> 
    </archive> 
    <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
    </descriptorRefs> 
    </configuration> 
    <executions> 
    <execution> 
     <id>make-assembly</id> <!-- this is used for inheritance merges --> 
     <phase>package</phase> <!-- bind to the packaging phase --> 
     <goals> 
     <goal>single</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

mvn package

+0

素晴らしいそれは働きました!どうもありがとうございます! – user1060551

関連する問題