Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在执行jar文件:原因:java.lang.ClassNotFoundException:org.springframework.context.ApplicationContext_Java_Maven_Jar_Package - Fatal编程技术网

正在执行jar文件:原因:java.lang.ClassNotFoundException:org.springframework.context.ApplicationContext

正在执行jar文件:原因:java.lang.ClassNotFoundException:org.springframework.context.ApplicationContext,java,maven,jar,package,Java,Maven,Jar,Package,我创建了一个maven项目。在我输入:mvn clean package之后,一切正常,我在目标中看到了我的jar文件。但是,如果单击该文件,则会收到以下错误消息: Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/c ontext/ApplicationContext Caused by: java.lang.ClassNotFoundException: org.springframe

我创建了一个maven项目。在我输入:mvn clean package之后,一切正常,我在目标中看到了我的jar文件。但是,如果单击该文件,则会收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/c
ontext/ApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.Applica
tionContext
        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)
Could not find the main class: comt.test.Test. Program will exit
我可以在Eclipse下运行该项目,并且工作正常,但是jar文件不工作

这是清单的内容:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Build-Jdk: 1.6.0_23
Main-Class: com.stlpo.App
Class-Path: commons-httpclient-3.1.jar commons-codec-1.2.jar h2-1.2.138.jar 
commons-lang-2.5.jar spring-core-3.0.3.RELEASE.jar spring-asm-3.0.3.RELEASE.jar co
 mmons-logging-1.1.1.jar spring-context-3.0.3.RELEASE.jar spring-beans
 -3.0.3.RELEASE.jar spring-expression-3.0.3.RELEASE.jar spring-orm-3.0
 .3.RELEASE.jar spring-tx-3.0.3.RELEASE.jar spring-aop-3.0.3.RELEASE.j
 ar aopalliance-1.0.jar spring-jdbc-3.0.3.RELEASE.jar spring-test-3.0.
 3.RELEASE.jar cglib-nodep-2.2.jar logback-core-0.9.24.jar logback-cla
 ssic-0.9.24.jar slf4j-api-1.6.0.jar hibernate-annotations-3.5.4-Final
 .jar hibernate-core-3.5.4-Final.jar antlr-2.7.6.jar commons-collectio
 ns-3.1.jar jta-1.1.jar hibernate-commons-annotations-3.2.0.Final.jar 
 hibernate-jpa-2.0-api-1.0.0.Final.jar hibernate-entitymanager-3.5.4-F
 inal.jar cglib-2.2.jar asm-3.1.jar javassist-3.9.0.GA.jar opencsv-2.1
 .jar jfreechart-1.0.13.jar jcommon-1.0.16.jar commons-beanutils-1.8.3
 .jar beansbinding-1.2.1.jar poi-3.6.jar log4j-1.2.13.jar
  poi-ooxml-3.6.jar poi-ooxml-schemas-3.6.jar xmlbeans-2.3.0.jar stax-
 api-1.0.1.jar geronimo-stax-api_1.0_spec-1.0.jar dom4j-1.6.1.jar xml-
 apis-1.0.b2.jar commons-dbcp-1.4.jar commons-pool-1.5.4.jar TableLayo
 ut-20050920.jar

提前感谢您的帮助。

当您构建JAR时,它只包含您的类。它不包含项目所依赖的所有其他库。(这样做是可能的,但这并不常见,而且大多数情况下是不可取的。)要在JAR中运行依赖于Spring的类,必须确保Spring位于类路径上,方法是将类路径传递给java可执行文件(如果使用
-JAR
参数,则不起作用),或者在JAR的清单文件中放入一个。当然,这不仅仅是春天。您必须为项目所依赖的每个jar包含一个类路径条目。

当您构建jar时,它只包含您的类。它不包含项目所依赖的所有其他库。(这样做是可能的,但这并不常见,而且大多数情况下是不可取的。)要在JAR中运行依赖于Spring的类,必须确保Spring位于类路径上,方法是将类路径传递给java可执行文件(如果使用
-JAR
参数,则不起作用),或者在JAR的清单文件中放入一个。当然,这不仅仅是春天。您必须为项目所依赖的每个jar包含一个类路径条目。

请参阅另一篇文章 您需要为依赖项(在您的例子中是spring)创建一个类路径(eclipse会自动为您创建它,这就是为什么您不会因为eclipse而破坏项目的原因)


org.apache.maven.plugins
maven jar插件
2.3
完全合格
真的
形态/
请参阅另一篇文章 您需要为依赖项(在您的例子中是spring)创建一个类路径(eclipse会自动为您创建它,这就是为什么您不会因为eclipse而破坏项目的原因)


org.apache.maven.plugins
maven jar插件
2.3
完全合格
真的
形态/

如果计划独立运行jar文件,则需要粘贴META-INF/MANIFEST.MF的内容。看看这个。如果您计划独立运行jar文件,您需要粘贴META-INF/MANIFEST.MF的内容。看看这个,嗨,瑞安。在我的清单中,我已经有了对spring的依赖。我需要额外编写smthg吗?除非我弄错了,否则JAR的类路径是相对于当前工作目录解析的路径列表。这意味着当您运行JAR时,所有列出的JAR都必须位于CWD所在的任何位置。在我的清单中,我已经有了对spring的依赖。我需要额外编写smthg吗?除非我弄错了,否则JAR的类路径是相对于当前工作目录解析的路径列表。这意味着,当您运行tipp@AdiMor的JAR.thx时,列出的所有JAR都必须位于CWD所在的任何位置。我将尝试您的答案并发布结果。我尝试了,但仍然不起作用,因为这并不重要,我停止了进一步搜索。thx要获得tipp@AdiMor的帮助thx,我将尝试您的答案并发布结果。我尝试了,但仍然没有成功不起作用,因为不重要,我停止了进一步的搜索。谢谢帮助
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>fully.qualified.MainClass</mainClass> 
                <addClasspath>true</addClasspath>
                <!-- use class path prefix if your dependencies are out side the jar)
                <classpathPrefix>lib/</classpathPrefix> -->          
            </manifest>

            <manifestEntries>
                <Class-Path>conf/</Class-Path>
            </manifestEntries>
        </archive>

    </configuration>
</plugin>