2015-05-14 1 views
0

Я знаю, что это задавали много раз, но я не могу понять это. :(Исключение в теме «main» java.lang.NoClassDefFoundError в моем тесте

У меня есть большой проект, и структура, как:

Project - build 
     - Config 
     - src 
     - tst 
     - build.xml 
     - webapp 
     - eclipse-bin 

Существует ява файл под TST/ком/MySpace/шлюз/содержание/Restlet/SanityTest.java В файле Java :

package com.myspace.gateway.content.restlet; 
... 
public class SanityTest extends ContentGatewayRestletResourceTestCase { 
... 
public static void main() { 
} 
} 

После весь проект компилирует класс файл SanityTest находится в сборке/частные/классы/тесты/ком/MySpace/шлюз/содержание/Restlet/SanityTest.class

Я входил в сборку/private/classes/tests и запускал «java -cp. . Com.myspace.gateway.content.restlet.SanityTest», но получил NoClassDefFoundError

Пожалуйста, помогите мне

PS: Стек след:

Exception in thread "main" java.lang.NoClassDefFoundError: com/myspace/gateway/content/ContentGatewayTestCase 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$000(Unknown Source) 
    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) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$000(Unknown Source) 
    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) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
Caused by: java.lang.ClassNotFoundException:   com.myspace.gateway.content.ContentGatewayTestCase 
    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) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
    ... 24 more 
Could not find the main class: com.myspace.gateway.content.restlet.SanityTest. Program will exit. 
+0

wow Мне нужно переструктурировать мой код ... – StackJay

+0

NoClassDefFoundError может произойти, даже если у вас есть класс правильно в classpath. Причиной может быть статический код или любое исключение othrr, в то время как загрузчик классов пытается загрузить класс –

+0

Можете ли вы предоставить копию полной ошибки, включая трассировку стека, в свой вопрос? Используйте кнопку «Изменить», пожалуйста, и правильно отформатируйте ее. – RealSkeptic

ответ

0

Вы побежали

java -cp . com/myspace/gateway/content/restlet/SanityTest 

Вы должны иметь пробег:

java -cp . com.myspace.gateway.content.restlet.SanityTest 

Прочитайте эту Q & А для получения более подробной информации:


UPDATE

Согласно StackTrace, проблема заключается в том, что Java не может найти ContentGatewayTestCase класс. Предположительно, это класс, от которого зависит ваш класс SanityTest. Однако фрагмент исходного кода показывает, что SanityTest расширяет ContentGatewayRestletResourceTestCase. Вам необходимо выяснить, если ContentGatewayTestCase зависимость верна:

  • Если, соответствующий файл «.class» должен находиться в том же каталоге, что и файл „SanityTest.class“.

  • В любом случае у вас, вероятно, есть проблема с тем, как вы компилируете свой код.

+0

Я запускал java -cp. com.myspace.gateway.content.resetlet.SanityTest. Моя ошибка в OP, я ее обновлю. – StackJay

 Смежные вопросы

  • Нет связанных вопросов^_^