2013-09-12 4 views
1

Я надеюсь, что ответ будет тупо простой, но я не могу получить следующую тестовую программу, работающую за счет ClassNotFound исключения:Не можете решить ClassNotFound Exception

import java.net.URL; 

import net.sourceforge.spnego.SpnegoHttpURLConnection; 

public class HelloKeytab { 

    public static void main(final String[] args) throws Exception { 
     System.setProperty("java.security.krb5.conf", "krb5.conf"); 
     System.setProperty("sun.security.krb5.debug", "true"); 
     System.setProperty("java.security.auth.login.config", "login.conf"); 

     SpnegoHttpURLConnection spnego = null; 

     try { 
      spnego = new SpnegoHttpURLConnection("spnego-client"); 
      spnego.connect(new URL("http://as1.test.local/hello_spnego.jsp")); 

      System.out.println("HTTP Status Code: " 
        + spnego.getResponseCode()); 

      System.out.println("HTTP Status Message: " 
        + spnego.getResponseMessage()); 

     } finally { 
      if (null != spnego) { 
       spnego.disconnect(); 
      } 
     } 
    } 
} 

я установил JDK7 и установить переменную JAVA_HOME среды в качестве администратора , Я работаю на компьютере под управлением Windows XP как обычный пользователь домена во время компиляции и запуска.

У меня есть spnego-r7.jar в том же каталоге, что и HelloKeytab.java и я скомпилирован с:

javac -cp .;spnego-r7.jar HelloKeytab.java 

, который успешно создает класс.

При запуске программы с:

java -cp .;spengo-r7.jar HelloKeytab 

Я получаю следующее сообщение об ошибке:

Exception in thread "main" java.lang.NoClassDefFoundError: net/sourceforge/spneg 
o/SpnegoHttpURLConnection 
     at HelloKeytab.main(HelloKeytab.java:15) 
Caused by: java.lang.ClassNotFoundException: net.sourceforge.spnego.SpnegoHttpUR 
LConnection 
     at java.net.URLClassLoader$1.run(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) 
     ... 1 more 

spnego-r7.jar можно найти здесь: http://sourceforge.net/projects/spnego/files/

Что я делаю неправильно, что оно не нашел мой класс?

+0

Это работает для меня. Вы уверены, что банка находится в папке? –

+0

Не могли бы вы предоставить полный путь к файлу jar? –

+0

Strangest предмет. Я скопировал все файлы из каталога пользователя \ Мои документы в C: \ test \, и ошибка пути к классу исчезла даже без указания полного пути jar. –

ответ

1

NoClassDefFoundError всегда из-за неправильных или неполных сборок или ошибок в пути к классу.

Я всегда пройти через следующий перечень, когда получаю эту ошибку:

  • Очистить проект
  • проверять файлы и каталоги
  • Проверьте путь сборки

Попробуйте еще раз. Никогда не сработает. :)

+0

Действительно, глупая ошибка. Решил его, добавив% JAVA_HOME%/bin в мою глобальную переменную среды PATH. –

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