我写了一个java程序来使用Netbeans7.0.1测试RESTful Web服务,它在那里工作得很好.现在我编写了build.xml文件来编译代码,当我尝试运行生成的.class文件时,我总是遇到这个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: ClientREST (wrong name: clientrest/ClientREST)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: ClientREST. Program will exit.
Run Code Online (Sandbox Code Playgroud)
名称和路径是正确的,所以任何想法为什么我得到这个例外?
我在eclipse IDE中有一个Android项目正在运行.经过一些导入和测试,我得到错误:java.lang.NoClassDefFoundError
.
在我的项目中,我有两个包:主要的一个,第二个包含一些类.
当我尝试从主活动类中的第二个包类实例化一个对象时,我收到此错误.
这是logcat:
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard
at milos.mdpi.Journals.<init>(Journals.java:41)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4389)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
找到我的问题的解决方案:
解决方案可以在这里找到:http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17
以下程序抛出错误:
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
CLASSPATH C:\Program Files\Java\jdk1.6.0_18\bin\
Path C:\Program Files\Java\jdk1.6.0_18\bin\
JAVAHOME C:\Program Files\Java\jdk1.6.0_18\bin
Run Code Online (Sandbox Code Playgroud)
你能告诉我根本原因吗?
我正在使用亚马逊的云服务开发一个webapp,我需要使用JSON对象.我的项目是如何设置的,我有一个HTML表单,用户将填写他们的信息并提交.提交后,数据将被放入在线数据库,并向他们发送确认电子邮件.在我将数据提交到数据库之前,我需要将所有数据放入JSON对象中.我的servlet,用Java完成,看起来像这样:
public class FormHandling extends HttpServlet {
//doGet function
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// In this part of the code I take in the user data and build an HTML
// page and return it to the user
// Create String Mapping for User Data object
Map<String,Object> userData = new HashMap<String,Object>();
// Map the names into one struct. In the code below we are creating
// values for the nameStruct from the information …
Run Code Online (Sandbox Code Playgroud) 今天我将ADT和SDK工具更新到v17,使用Google的gson jar库的项目开始抛出NoClassDefFoundError.这是logcat输出:
> 03-22 12:30:58.941: E/AndroidRuntime(21672): FATAL EXCEPTION: main
> 03-22 12:30:58.941: E/AndroidRuntime(21672):
> java.lang.NoClassDefFoundError: com.google.gson.Gson 03-22
> 12:30:58.941: E/AndroidRuntime(21672): at
> com.matriksdata.conn.XRequestHandler.connect(XRequestHandler.java:35)
> 03-22 12:30:58.941: E/AndroidRuntime(21672): at
> com.matriksdata.conn.XRequestHandler.makeRequest(XRequestHandler.java:
> 29) 03-22 12:30:58.941: E/AndroidRuntime(21672): at
> com.matriksdata.bavul.XBaseWithConnectionActivity.makeRequest(XBaseWithConnectionActivity.java:
> 46) 03-22 12:30:58.941: E/AndroidRuntime(21672): at
> com.matriksdata.ui.login.SplashScreenActivity.onCreate(SplashScreenActivity.java:
> 36) 03-22 12:30:58.941: E/AndroidRuntime(21672): at
> android.app.Activity.performCreate(Activity.java:4465) 03-22
> 12:30:58.941: E/AndroidRuntime(21672): at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> 1049) 03-22 12:30:58.941: E/AndroidRuntime(21672): at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> 1919) 03-22 12:30:58.941: E/AndroidRuntime(21672): at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> 1980) 03-22 …
Run Code Online (Sandbox Code Playgroud) 如何在gradle中导出可执行jar,这个jar可以运行,因为它包含引用库.
的build.gradle
apply plugin: 'java'
manifest.mainAttributes("Main-Class" : "com.botwave.analysis.LogAnalyzer")
repositories {
mavenCentral()
}
dependencies {
compile (
'commons-codec:commons-codec:1.6',
'commons-logging:commons-logging:1.1.1',
'org.apache.httpcomponents:httpclient:4.2.1',
'org.apache.httpcomponents:httpclient:4.2.1',
'org.apache.httpcomponents:httpcore:4.2.1',
'org.apache.httpcomponents:httpmime:4.2.1',
'ch.qos.logback:logback-classic:1.0.6',
'ch.qos.logback:logback-core:1.0.6',
'org.slf4j:slf4j-api:1.6.0',
'junit:junit:4.+'
)
}
Run Code Online (Sandbox Code Playgroud)
在我运行之后:gradle build
它创建了build文件夹,我在build/libs/XXX.jar中运行jar:
java -jar build/libs/XXX.jar
这是一个执行说:
Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
Run Code Online (Sandbox Code Playgroud)
我如何使用参考库运行它?
我实际上已经解决了这个问题,但它花了我几天,所以我想我会把我的解决方案粘贴到其他人身上.
我正在使用Fedora 11,在Eclipse中我尝试添加一个Tomcat 6服务器并启动它.我会收到以下错误:
"在localhost上启动Tomcat v6.0服务器"遇到了问题.
localhost上的服务器Tomcat v6.0服务器无法启动.
然后在我的控制台中我得到以下内容:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:54)
Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
... 1 more
Could not find the main class: org.apache.catalina.startup.Bootstrap. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我将在下面的答案中发布解决方案.
我正在ClassNotFoundException
和NoClassDefFoundError
例外,当我尝试使用Maven的定义依赖于运行我的应用程序.
我pom.xml
使用以下声明将我对相关jar的maven依赖项添加到我的文件中:
<dependency>
<groupId>spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.8.4</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这将相关的JAR文件添加到Eclipse中的Maven Dependencies文件夹中.我可以在代码中访问类,但是一旦运行应用程序,我就会得到提到的异常.
在Maven依赖项下的Java构建路径中引用了jar:
我的本地maven存储库已添加到我的类路径中:
当我尝试运行该应用程序时,我得到以下两个例外:
java.lang.NoClassDefFoundError: Lnet/spy/memcached/MemcachedClient;
java.lang.ClassNotFoundException: net.spy.memcached.MemcachedClient
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?
这是一个有趣的java问题.
以下简单的java程序包含静态方法初始化的静态字段.实际上,我强制计算intiailize值的方法引发NullPointException,当我访问这样的静态字段时,会引发NoClassDefFoundError.似乎VM对待Class并不完整.
但是当我访问Class时,它仍然可用;
有谁知道为什么?
class TestClass {
public static TestClass instance = init();
public static TestClass init() {
String a = null;
a.charAt(0); //force a null point exception;
return new TestClass();
}
}
class MainClass {
static public void main(String[] args) {
accessStatic(); // a ExceptionInInitializerError raised cause by NullPointer
accessStatic(); //now a NoClassDefFoundError occurs;
// But the class of TestClass is still available; why?
System.out.println("TestClass.class=" + TestClass.class);
}
static void accessStatic() {
TestClass a;
try {
a = TestClass.instance; …
Run Code Online (Sandbox Code Playgroud) 我正在研究YouTube broadcast
示例示例.我创建了一个样本Java Project
并添加了所需的罐子.但是,当我尝试运行该项目时,它会抛出异常.
例外:
Throwable: com/fasterxml/jackson/core/JsonFactory
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
at com.google.api.client.json.jackson2.JacksonFactory.<init>(JacksonFactory.java:44)
at com.google.api.services.samples.youtube.cmdline.live.Auth.<clinit>(Auth.java:35)
at com.google.api.services.samples.youtube.cmdline.live.CreateBroadcast.main(CreateBroadcast.java:55)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
Run Code Online (Sandbox Code Playgroud)
我从这个GitHub存储库下载了该项目.
java jar noclassdeffounderror live-streaming youtube-data-api