2015-01-07 3 views
0

Я новичок в Maven и Jackrabbit, и я начинаю с примера FirstHops, приведенного на сайте Apache, но при попытке запустить меня становится ниже ошибки. Не уверен, что проверить.java.lang.NoClassDefFoundError Jackrabbit FirstHop пример

S:\mvnapp\FirstHop2>java -cp target\FirstHop2-1.0-SNAPSHOT.jar org.shobhan.jr.Fi 
rstHopSB 
Exception in thread "main" java.lang.NoClassDefFoundError: javax/jcr/Credentials 

Caused by: java.lang.ClassNotFoundException: javax.jcr.Credentials 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     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) 
     at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
Could not find the main class: org.shobhan.jr.FirstHopSB. Program will exit. 

Ниже представлен файл Pom.xml, я добавил зависимости, как указано на сайте apache.

<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.shobhan.jr</groupId> 
    <artifactId>FirstHop2</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>FirstHop2</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <!-- The JCR API --> 
     <dependency> 
      <groupId>javax.jcr</groupId> 
      <artifactId>jcr</artifactId> 
      <version>2.0</version> 
     </dependency> 
     <!-- Jackrabbit content repository --> 
     <dependency> 
      <groupId>org.apache.jackrabbit</groupId> 
      <artifactId>jackrabbit-core</artifactId> 
      <version>2.9.0</version> 
     </dependency> 
     <!-- Use Log4J for logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.7.5</version> 
     </dependency> 
    </dependencies> 
</project> 

My env. имеет значения ниже.

CLASSPATH = C: \ Program Files \ Java \ jdk1.6.0_17 \ Bin; S: \ JR \ Jackrabbit-автономный-2.8.0.jar JAVA_HOME = C: \ Program Files \ Java \ jdk1.6.0_17

M2_HOME = S: \ Maven \ Apache-3.2.5-Maven PATH =% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ system32 \ Wbem;% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \; S: \ maven \ apache-maven-3.2.5 \ bin; C: \ Program Files \ Java \ jdk1.6.0_17 \ bin

+0

Там не должно быть никакого места вообще: 'Java -cp цель \ FirstHop2-1.0-SNAPSHOT.jar org.shobhan.jr.FirstHopSB'? –

+0

Предоставьте свой XML-файл Maven POM. –

ответ

0

Ваша проблема заключается в том, что вы не включаете свои зависимости в целевую банку: Добавьте это к вашему pom.xml:

<build> 
    <plugins> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
     <archive> 
      <manifest> 
      <mainClass>com.mypackage.main.Main</mainClass> 
      </manifest> 
     </archive> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

, а затем запустить цель:

clean package assembly:single 
+0

Я добавил эти зависимости только в файл pom.xml. – NotesArt