2016-07-05 12 views
0

私は以下のApp.javaとpom.xmlファイルを持っています。私はEclipseでApp.java実行アプリケーションを実行すると 、それはmavenプロジェクトのコマンドラインでjarファイルを実行

のjava -cp myappに、クリーン日食にインストールしてから、ターミナルを開いて、それを実行するには、次のコマンドを実行しMVN後

が動作します-1.0.0-SNAPSHOT.jarにorg.myapp.test.App

私は以下のエラーがあります: を私はそれをGoogleで検索して が含まれるために必要とされているSLF4J-api.jarのとJCLオーバーSLF4Jのように思えますコマンドラインで。これらのjarファイルは、 C:¥Users¥user.m2¥repository¥org¥slf4j¥slf4j-api¥1.7.7¥slf4j-api-1.7.7.jarなどにあります。 /Users/user/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7:

は、だから私は

のjava -cp Cの次のコマンドラインを試してみました。 7.jar; C:/Users/user/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar; myapp-1.0.0-SNAPSHOT。 jar org.myapp.test.App

これも機能しませんでした。

2)私のグーグルリングに基づいて、私はこれらのjarファイルをpom.xmlファイルに含めることができるので、コマンドラインでjarファイルを追加することなく、そのようなパスを構築するなど、明確な例は見つかりませんでした。

誰でもこのためにpom.xmlファイルを表示してください。

java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 
     at com.walmart.ticketservice.App.<clinit>(App.java:32) 
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     ... 1 more 
Exception in thread "main" 




package org.myapp.test; 

    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 

    public class App { 
     private static final Logger logger = LoggerFactory.getLogger(App.class); 

     public static void main(String[] args) { 
      logger.debug("debug"); 
      logger.info("info"); 
     } 
    } 

のpom.xml

<dependencies> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.4</version> 
    <scope>test</scope> 
    </dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.7</version> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>1.7.7</version> 
</dependency> 

<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.1.2</version> 
    <exclusions> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>false</downloadJavadocs> 
       <wtpversion>2.0</wtpversion> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
     </plugin> 
    </plugins> 
</build> 

答えて

0

Eclipseは、使用ライブラリを知っているとあなたのためのクラスパスを組み立てます。手動で行うことは、依存関係も考慮する必要があるため、非常に面倒な作業になります。

あなたが言ったように、Mavenにはすべてjarにバンドルさせることができます。ここで説明:

http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies

stackoverflowの上の関連する質問:それは動作します

How can I create an executable JAR with dependencies using Maven?

+0

感謝を! – user2761895

関連する問題