正在执行jar文件:原因:java.lang.ClassNotFoundException:org.springframework.context.ApplicationContext
我创建了一个maven项目。在我输入:mvn clean package之后,一切正常,我在目标中看到了我的jar文件。但是,如果单击该文件,则会收到以下错误消息:正在执行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
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>