2017-02-14 4 views
1

내가 jinjava 응용 프로그램을 만들려고 해요 님의 SRC/메인/자바/COM/기업/Main.javaJinjava 첫 번째 응용 프로그램 java.lang.ClassNotFoundException가

package com.company; 
import com.hubspot.jinjava.Jinjava; 
public class Main { 
    public static void main(String[] args) { 
     Jinjava jinjava = new Jinjava(); 
    } 
} 

및 pom.xml 파일의 일부 (감사 SOF, i)는 전적으로 그것을 게시 할 수 없습니다 :

<repositories> 
     <repository> 
      <id>osssonatype</id> 
      <name>OSS Sonatype</name> 
      <url>https://repo1.maven.org/maven2/</url> 
      <layout>default</layout> 
     </repository> 
    </repositories> 

    <dependencies> 
    <dependency> 
     <groupId>com.hubspot.jinjava</groupId> 
     <artifactId>jinjava</artifactId> 
     <version>2.1.14</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>21.0</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
      <!-- Build an executable JAR --> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>com.company.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
    </plugins> 
     <finalName>jj4</finalName> 
    </build> 
</project> 

그러나 "MVN 깨끗한 설치"후

가와 "자바 -jar 대상/jj4.jar"내가 갖는 :

Exception in thread "main" java.lang.NoClassDefFoundError: com/hubspot/jinjava/Jinjava 
    at com.company.Main.main(Main.java:12) 
Caused by: java.lang.ClassNotFoundException: com.hubspot.jinjava.Jinjava 
    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 

뭐가 잘못 됐니?

+1

당신은 (어셈블리 플러그인을 사용하여 예를 들어)는 "지방"JAR를 구축하지 않을는, 따라서'ClassNotFoundException' – Tome

+0

감사합니다! 나는 이것을하기 위해 maven-shade-plugin을 사용했고, 이제 build를한다. – aranel

+0

eclipse 내보내기를 실행 가능한 jar로 사용하고 작동하는지 확인하십시오. –

답변

0

시도해보십시오. 어떤 도움이 될 수 있습니다. 그래서 의존성이 당신의`jj4.jar` 파일에 포함되지 않습니다

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4.1</version> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>class name along with package which has the main method</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin>