首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行jar文件时引发的java.lang.NoClassDefFoundError

运行jar文件时引发的java.lang.NoClassDefFoundError
EN

Stack Overflow用户
提问于 2012-06-18 07:43:26
回答 3查看 4.7K关注 0票数 1

我正在尝试在Mac上运行我的jar文件(还没有在任何其他平台上试过)。当我使用java -jar MyApp.jar运行时,会得到以下错误

Stacktrace:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at tabalchi.MyLogger.getLogger(MyLogger.java:51)
at tabalchiApp.TabalchiApp.printSystemProps(TabalchiApp.java:117)
at tabalchiApp.TabalchiApp.main(TabalchiApp.java:37)

所以,正如您所看到的,主类是识别的。这是清单文件。->

代码语言:javascript
复制
Manifest-Version: 1.0
Class-Path: . jars/log4j-1.2.16.jar jars/jfugue-4.1.0-20120125.jar jars/gervill.jar jars/AppleJavaExtensions.jar  
Main-Class: tabalchiApp.TabalchiApp
SplashScreen-Image: tabalchiApp/resources/splash.png

<--和jar文件中的文件夹结构如下。->

代码语言:javascript
复制
META-INF/MANIFEST.MF
jars/AppleJavaExtensions.jar
jars/gervill.jar
jars/jfugue-4.1.0-20120125.jar
jars/log4j-1.2.16.jar
tabalchiApp/TabalchiApp.class   <-- this is the main class
tabalchiApp/otherClasses.....class

<

我读过很多关于运行.jar文件的文章,但是没有一个解决方案对我有用。我非常感谢你在这件事上的帮助。

我是通过导出eclipse创建jar文件的。如果我导出到一个可运行的jar文件,那么我就无法控制清单文件的生成。我需要在清单文件中添加启动图像。我还有一些其他的问题,关于运行的jar出口。因此这条路。

EN

回答 3

Stack Overflow用户

发布于 2012-06-18 07:49:22

log4j is missing.it似乎在等待类路径中的jars/log4j-1.2.16.jar

代码语言:javascript
复制
jars/log4j-1.2.16 

应该在文件夹结构下。

代码语言:javascript
复制
 jars/log4j-1.2.16.jar
票数 4
EN

Stack Overflow用户

发布于 2012-06-18 07:52:15

您要在哪个目录中使用: java -jar MyApp.jar

您可以在类路径中指定包/目录,以确保找到它们。

票数 0
EN

Stack Overflow用户

发布于 2012-06-19 16:57:43

好吧,根据这个链接,

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

类路径头指向本地网络上的类或JAR文件,而不是JAR文件中的JAR文件或通过internet协议可访问的类。若要将JAR文件中的JAR文件中的类加载到类路径中,必须编写自定义代码来加载这些类。例如,如果MyJar.jar包含另一个名为MyUtils.jar的JAR文件,则不能使用MyJar.jar清单中的类路径头将MyUtils.jar中的类加载到类路径中。

因此,我似乎不能在jar文件中包含其他jar文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11078713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档