问题标签 [noclassdeffounderror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
36580 浏览

java - JNA 示例程序 java.lang.NoClassDefFoundError

我可以编译这个 JNA 示例代码(来自https://github.com/twall/jna/#getting_started的第 2 步):

...使用javac -classpath .:jna.jar -g HelloWorld.java没有错误。(我下载了jna.jar,现在和HelloWorld.java放在同一个目录下。)

但是当我使用 运行它时java -classpath .:jna.jar HelloWorld,我得到:

我在 Mac OS X 和 Linux 上得到了完全相同的异常。

我如何让它运行?

0 投票
1 回答
6163 浏览

java - JNI 调用 API - NoClassDefFoundError (C/Java)

我正在尝试使用 JNI,因为我有一个需要访问单个 Java 库函数(没有 C 等效库)的 C 应用程序。我编写了一个非常简单的测试程序来从 C 加载 Java VM 并调用静态函数并获取返回值。

不幸的是,我无法让课程正确加载。虽然它可能会归结为它,但我认为我的 ClassPath 是正确的:当我java在同一目录中使用具有相同 ClassPath 的命令时,该类可以完美加载并执行。

环境:
Ubuntu 8.04 服务器
Java JRE&SDK 1.6
gcc

我现在的工作目录总是/home/me/project.

这是我运行java命令 ( java -Djava.class.path=/home/me/project/ -verbose my.ClassABC) 时得到的结果:

以下是我运行 C 程序 ( ./myClassABC) 时得到的结果:

这是我的 gcc 命令行:

gcc -o myClassABC myClassABC.c -I/usr/lib/jvm/java-6-sun-1.6.0.16/include/ -I/usr/lib/jvm/java-6-sun-1.6.0.16/include/linux -L/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/server/ -ljvm

我的 C 代码 ( myClassABC.c):

而我的 java 代码,仅用于 #$%@s 和咯咯笑(编译为/home/me/project/my/ClassABC.class):

谢谢,
布赖恩

0 投票
3 回答
2824 浏览

java - NoClassDefFoundError:Mac 计算机上的 javax/swing/GroupLayout$Group

仅当我在 mac 计算机上测试我的 Java 程序时,我才会遇到运行时错误。它在各种 Windows 操作系统上测试得非常好。这是我在 Mac 电脑上收到的错误消息...

线程“AWT-EventQueue-0”中的异常 java.lang.NoClassDefFoundError: javax/swing/GroupLayout$Group at project.MainPanel.calculateButtonActionPerformed(MainPanel.java:198) at project.MainPanel.access$200(MainPanel.java:32)在 project.MainPanel$3.actionPerformed(MainPanel.java:97) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202) 在 javax.swing .DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) 在 java.awt。 Component.processMouseEvent(Component.java:5602) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3135) 在 java.awt.Component.processEvent(Component.java:5367) 在 java.awt.Container.processEvent(Container.java:2010) 在 java.awt.Component.dispatchEventImpl(Component.java:4068) 在 java. awt.Container.dispatchEventImpl(Container.java:2068) 在 java.awt.Component.dispatchEvent(Component.java:3903) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256) 在 java.awt.LightweightDispatcher.processMouseEvent (Container.java:3936) 在 java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866) 在 java.awt.Container.dispatchEventImpl(Container.java:2054) 在 java.awt.Window.dispatchEventImpl(Window.java: 1801) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:463) 在 java.awt.EventDispatchThread 的 java.awt.Component.dispatchEvent(Component.java:3903)。pumpOneEventForHierarchy(EventDispatch!Thread.j ava:269) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEvents( EventDispatchThread.java:176) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:110)\

我不知道为什么会这样。我在 Windows 计算机上编译程序的事实可能是问题所在吗?这是我唯一能想到的。

0 投票
2 回答
1366 浏览

java - Java NoClassDefFoundError 当 jar 清楚地有它时

我有一个简单的类,它从另一个 jar 导入另一个类。一切都编译得很好,但试图运行它......

有任何想法吗?你如何开始调试这个?

0 投票
4 回答
3663 浏览

java - java.lang.NoClassDefFoundError:无法初始化类 java.net.ProxySelector

我遇到了一个Java应用程序不断抛出的问题:

java.lang.NoClassDefFoundError:无法初始化类 java.net.ProxySelector。

我正在运行 Suse Linux 10.3 并运行 java 1.6.0。我的 CLASSPATH 设置为

/usr/lib/jvm/jre-1.6.0-openjdk/lib.

似乎没有其他用户出现此错误,所以我假设它是我的设置。对于那些想知道应用程序是 yamj 的人(http://code.google.com/p/moviejukebox/

关于可能缺少什么或我可能做错了什么的任何想法?

编辑错误的完整痕迹如下:

java.lang.NoClassDefFoundError:无法在 java.security.AccessController.doPrivileged(Native Method) 的 sun.net.www.protocol.http.HttpURLConnection$5.run(HttpURLConnection.java:736) 处初始化类 java.net.ProxySelector sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:732) 在 sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:672) 在 sun.net.www.protocol。 http.HttpURLConnection.getInputStream(HttpURLConnection.java:997) 在 com.movi​​ejukebox.thetvdb.tools.XMLHelper.getEventReader(XMLHelper.java:19) 在 com.movi​​ejukebox.thetvdb.model.Mirrors.(Mirrors.java:30) 在com.movi​​ejukebox.thetvdb.TheTVDB.(TheTVDB.java:37) 在 com.movi​​ejukebox.plugin.TheTvDBPlugin.(TheTvDBPlugin.java:57) 在 sun.reflect.GeneratedConstructorAccessor2。新实例(未知来源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:532) 在 java.lang.Class.newInstance0(Class.java: 372) 在 java.lang.Class.newInstance(Class.java:325) 在 com.movi​​ejukebox.plugin.DatabasePluginController.getMovieDatabasePlugin(DatabasePluginController.java:96) 在 com.movi​​ejukebox.plugin.DatabasePluginController.access$000(DatabasePluginController.java: 30) 在 com.movi​​ejukebox.plugin.DatabasePluginController$1.initialValue(DatabasePluginController.java:44) 在 com.movi​​ejukebox.plugin.DatabasePluginController$1.initialValue(DatabasePluginController.java:39) 在 java.lang.ThreadLocal.setInitialValue(ThreadLocal.java :160) 在 java.lang.ThreadLocal。get(ThreadLocal.java:150) at com.movi​​ejukebox.plugin.DatabasePluginController.scan(DatabasePluginController.java:70) at com.movi​​ejukebox.MovieJukebox.updateMovieData(MovieJukebox.java:1051) at com.movi​​ejukebox.MovieJukebox.access$100( MovieJukebox.java:80) at com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:613) at com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:600) at java.util.concurrent.FutureTask$Sync.innerRun (FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.java在 com.movi​​ejukebox.MovieJukebox.updateMovieData(MovieJukebox.java:1051) 在 com.movi​​ejukebox.MovieJukebox.access$100(MovieJukebox.java:80) 在 com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox) 扫描(DatabasePluginController.java:70) .java:613) 在 com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:600) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run (FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread。运行(线程.java在 com.movi​​ejukebox.MovieJukebox.updateMovieData(MovieJukebox.java:1051) 在 com.movi​​ejukebox.MovieJukebox.access$100(MovieJukebox.java:80) 在 com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox) 扫描(DatabasePluginController.java:70) .java:613) 在 com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:600) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run (FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread。运行(线程.javajava:80) at com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:613) at com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:600) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask .java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker。在 java.lang.Thread.run(Thread.java 运行(ThreadPoolExecutor.java:603)java:80) at com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:613) at com.movi​​ejukebox.MovieJukebox$4.call(MovieJukebox.java:600) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask .java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker。在 java.lang.Thread.run(Thread.java 运行(ThreadPoolExecutor.java:603)runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.javarunWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.java

0 投票
2 回答
6749 浏览

java - 春天的 NoClassDefFoundError

我编写了一个在 Weblogic 10.3 上运行的 Spring 应用程序。在这个应用程序中,我有一些 JMS 队列消费者。

有时我在应用程序关闭或打开时遇到错误(我在两种情况下都看到了这个错误)说:

为什么我会收到此错误,我应该怎么做才能解决它?spring.jar 的版本是 2.5.5

0 投票
2 回答
1182 浏览

unix - 在 Unix 中运行 jar 时未读取清单中的类路径

我有一个需要在 Unix 上运行的客户端应用程序。它在 Windows 中运行良好,但在 unix 中出现 NoClassDefFound 异常。这是我的清单文件:

Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.5 Created-By: 2.3 (IBM Corporation) Main-Class: com.main.Client Class-Path: lib/commons-lang-2.3.jar lib/commons-io -1.3.2.jar lib/comm ons-logging-api-1.1.jar lib/log4j-1.2.12.jar

Client.jar 结构:

com com/main lib 元信息

要运行它,我使用以下命令:

它在 Windows 中运行良好。不知何故,我认为它没有正确阅读清单。请帮忙!谢谢!

0 投票
1 回答
540 浏览

java - Java:更新 jar 文件时加载类

我的 Java 程序在运行时动态加载类。所有类都位于同一个 jar 中。

部署新的 jar 文件后,有时在复制 jar 文件时会出错(NoClassDefFoundError 等)。当然,下次我运行该程序时,这种情况就会消失。有没有办法预加载类,以便我的程序在更新 jar 时不受影响?

我想我可以创建所有类的实例,然后 clone() 它们,但也许有更好的方法?

0 投票
8 回答
21230 浏览

java - NoClassDefFoundError 没有任何类名

我正在尝试从 ant 运行 java 任务。我正在尝试运行“org.apache.tools.ant.launch.Launcher”类。我不断收到“NoClassDefFoundError”,但没有指定任何类名。我还收到“ClassNotFoundException”以及显示消息“找不到主类:。程序将退出”。这是错误的片段

现在我试图从一个 ant jar 运行一个 ant 类,我使用“classpathref”属性指定这个类文件所在的类路径,但是我仍然收到这个消息。我检查了 ant jar 以检查 Manifest,并且正确指定了“主”类(它是“org.apache.tools.ant.launch.Launcher”)。我已经用尽了我所有的资源。请帮忙 !!!

ps:我的环境是Ubuntu 9.04上的Eclipse

0 投票
7 回答
8974 浏览

java - 如何分析由忽略的 ExceptionInInitializerError 引起的 NoClassDefFoundError?

今天我花了一个下午分析 NoClassDefFoundError。一次又一次地验证classpath,结果发现有一个类的静态成员抛出了第一次被忽略的Exception。之后,每次使用该类都会抛出没有有意义的堆栈跟踪的 NoClassDefFoundError:

就这样。没有更多的线条。

简而言之,这就是问题所在:

为了让它不那么容易,除了最后一个调用之外,所有的调用A.getId()都隐藏在一个非常大的项目的初始化代码中的某个地方。

问题:

现在我在经过数小时的反复试验后发现了这个错误,我想知道是否有一种直接的方法可以从抛出的异常开始找到这个错误。关于如何做到这一点的任何想法?


我希望这个问题将成为其他分析莫名其妙的人的提示NoClassDefFoundError