2014-02-27 4 views
1

Я создал файл java с именем «canceladir», который находится в имени каталога «canceladir», когда я пишу, в моей оболочке ubuntu, «javac cancelladir.java». Он создает cancelladir.class, но когда я пытаюсь выполнить файл Java с помощью команды «Java cancelladir» есть некоторые ошибки, как это:java.lang.NoClassDefFoundError: и другая ошибка

Exception in thread "main" java.lang.NoClassDefFoundError: cancelladir (wrong name: cancelladir/cancelladir) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    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) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 

Я уже установили на пути к классам export CLASSPATH=.:/home/lisa/graphhopper/graphhopperAndrea/web/src/main/webapp/cancelladir и попытаться перекомпилировать, но изменить ничего. В чем проблема? что мне нужно сделать?

+0

вы отлаживать код, чтобы найти то, что строка кода бросить ошибку? – lakshman

+0

Невозможно найти ваш класс в пути к классам. Откройте новое командное окно и попробуйте установить путь к классам, например export CLASSPATH = $ {CLASSPATH}:. – Jay

+0

Каков код и процедура, которые я должен использовать, чтобы делать то, что вы пишете? извините, но я начинаю в java – Zoifil

ответ

1

После компиляции кода вы получаете файлы .class для каждого класса вашей программы. Эти двоичные файлы - это байт-код, который Java интерпретирует для выполнения вашей программы. NoClassDefFoundError указывает, что загрузчик классов, который отвечает за динамическую загрузку классов, не может найти файл .class для класса, который вы пытаетесь использовать. Вероятно, это указывает на то, что вы не задали параметр classpath при выполнении кода. Эта ссылка объясняет, как установить путь к классу при выполнении

1

1) Откройте новую оболочку и добавьте новую простую программу, подобную этой.
2) Скомпилируйте java-код с помощью javac Hello.java
3) Запустите код с помощью java Привет
Он должен работать, если у вас все еще есть проблема, сообщите об этом.

enter image description here

+0

У меня такая же проблема = ( – Zoifil

+0

Пробовал ли вы эту простую Hello.java программа: вы можете вставить трассировку стека? – Jay

+0

Извините, теперь она работает (только простой код Hello.java) – Zoifil

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