|
|
|
classpath problems again
|
|||
|---|---|---|---|
|
#18+
Всем привет. Скажу сразу, проблема, с которой я столкнулся, описывается на очень многих форумах. Пишу сюда, потому что безуспешно перепробовал все рецепты. 1) Есть класс Logger, который лежит в пакете a.b (директория src/a/b/Logger.java). В Java коде указан пакет - package a.b; 2) В нескольких классах (лежащих и в этом пакете и в других пакетах) этого же проекта вызывается статичный метод класса Logger, таким вот образом - a.b.Logger.print(); 3) когда запускаю на Netbeans build-project, выходит ошибка Exception in thread "main" java.lang.NoClassDefFoundError: a/b/Logger 4) .class файл создается в папке build/a/b Какие меры я предпринял: - установил переменную среды CLASSPATH в а) путь_до_папки_проекта ( где лежат папки bin,src,build и.т.д.) b) путь_до_папки_проекта\build c) путь_до_папки_проекта\build\a d) путь_до_папки_проекта\build\a\b При этом Netbeans не выдает ошибок, что a.b.Logger не виден, ничего красным не подчеркивает, Logger.java даже компилируется, как я сказал выше, в папку ...build\a\b\, ошибка происходит именно в процессе обращения к этому классу другими классами. Везде пишут classpath виноват, но я уже все делал, что советуют. Кто знает, в чем дело, помогите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 15:04:43 |
|
||
|
classpath problems again
|
|||
|---|---|---|---|
|
#18+
BaurzhanS, Какая версия Netbeans? Не делайте ничего с classpath руками. Что за проект ? Имеется ввиду "Class Library", "Java Application", и т.д. Посмотрите внимательнее на класс Logger. Попробуйте: Удалите в папке проекта dist и build дирректории. Выполните Clean and Build Если не поможет: Выйдите из Netbeans Найдите папку var. У меня на Windows 7 "C:\Users\Valery\AppData\Roaming\NetBeans\7.3beta2\var" Удалите папку var Запустите Netbeans Вы упомянули много форумов. Хотелось бы получить ссылку хотя бы на 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 13:49:16 |
|
||
|
classpath problems again
|
|||
|---|---|---|---|
|
#18+
Valery Shiskin, Спасибо за ответ. Netbeans 7.2.1. Кэш чистить я пробовал. Проект свободной формы - тип проекта так и называется в Netbeans. Проблему я уже решил - переместил логгер в другой пакет, который имел уровень вложенности 3. То есть из a/b/Logger убрал в c/d/e/Logger. Кажется, проблема была в том, что я положил класс Logger в корневую папку проекта. Потом протестил другие классы, которые лежали там - они тоже не были видны, то есть вызывали ошибку java.lang.NoClassDefFoundError при использовании другими классами. а все другие классы лежали в папках a/b/c/(set of .java files) a/b/c/d(set of files) и только 3 класса в а/b. Остальные классы, которые лежали в корне, не вызывали проблем, потому что это были вспомогательные классы, которые особо и не использовались или вообще вызывались нетбинсом еще в процессе построения-компиляции - еще не разобрался, проект не мой, я его изучаю. Короче, это было примерно то же, что запихать класс в папку src, не создав пакет - где-то читал давно, что плохо, дурной стиль, может не заработать. А здесь не обратил внимания, потому что были папки a/b/, создавашие иллюзию того, чсто все "запакетировано". А оказывается, что если все другие "непроблемные" классы лежат глубже a/b/, то это типа корень и сработала "опасность дурного стиля". Это мои предположения=) Вот одна из ссылок, что я читал, правда, это оне форум, а статья, но это один из самых подробно написанных материалов из тех, что я нагуглил, поэтому приведу его /www.skipy.ru/technics/likbez.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 16:16:23 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38077859&tid=2130362]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 278ms |
| total: | 446ms |

| 0 / 0 |
