【问题标题】:java.lang.NoClassDefFoundError Jackrabbit FirstHop examplejava.lang.NoClassDefFoundError Jackrabbit FirstHop 示例
【发布时间】:2015-01-07 10:59:07
【问题描述】:

我是 Maven 和 Jackrabbit 的新手,我从 Apache 网站上给出的 FirstHops 示例开始,但在尝试运行时出现以下错误。不知道要检查什么。

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>

我的环境。具有以下值。

CLASSPATH=C:\Program Files\Java\jdk1.6.0_17\bin;S:\JR\jackrabbit-standalone-2.8.0.jar JAVA_HOME=C:\Program Files\Java\jdk1.6.0_17

M2_HOME=S:\maven\apache-maven-3.2.5 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

【问题讨论】:

  • 应该没有空格:java -cp target\FirstHop2-1.0-SNAPSHOT.jar org.shobhan.jr.FirstHopSB?
  • 提供您的 Maven POM xml 文件。

标签: java maven jackrabbit


【解决方案1】:

您的问题是您没有在目标 jar 中包含依赖项: 将此添加到您的 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 

【讨论】:

  • 我只在 pom.xml 文件中添加了这些依赖项。
猜你喜欢
  • 2014-11-09
  • 2010-12-18
  • 2016-06-16
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2018-09-08
相关资源
最近更新 更多