2010-02-10 3 views
2

У одной из моих команд возникла проблема с проектом, который он получил от нашего SVN. Когда он пытается запустить файл, он получает ошибку:Java NoClassDefFoundError из-за «неправильных» косых черт

java.lang.NoClassDefFoundError: misc\test (wrong name: misc/test) 

Мы действительно не понимаем, почему он получил эту ошибку. Кажется, что причиной этого является косая черта, но я не понимаю, как это проблема или как ее исправить. :(

Мы оба используем NetBeans (я на 6.7.1 и он 6.8) и встроенную функцию svn. Я создал проект моего компьютера, Mac, и он использует Win7. Может ли это иметь какое-либо отношение к нему? Unix и Win используют разные слэши для путей в конце концов .. Но я не знаю «т увидеть, как изменить это, потому что он работает файлы с IDE.

Таким образом, любая помощь будет оценена. Спасибо!
Stian

+3

Как он пытается запустить его? – Bozho

+1

Как он запускает файл? Например, какова эквивалентная строка 'java blahblahblah' для того, что пытается сделать IDE? Не беспокойтесь о том, что вы делаете слэш-vs-backslash в исключении. Java почти всегда показывает пути, используя косые черты, даже в Windows, но это не значит, что они смущены. –

+0

Вы должны увидеть трассировку стека, которая показывает, откуда возникло исключение. В принципе, часть кода где-то думает, что 'misc \ test' - это имя класса. Трассировка стека поможет найти этот фрагмент кода. –

ответ

1

При указании пути в Java, это хорошая идея, чтобы всегда использовать сепараторы unix. Поскольку они также w ork в Windows. Также при использовании в java Strings символ «\» является символом escape, поэтому вам всегда нужно использовать два (обратите внимание, что это не так для вашего случая).

+1

Erm no, Java вообще не переводится. Windows ** просто ** поддерживает его. Выкачайте немного в 'cmd' самостоятельно;) – BalusC

+0

Спасибо за добавление, я обновлю ответ. – Thirler

0

Это швы как он пытается запустить misc\test как в

java misc\test 

но правильно должно быть

java misc.test 

(также принял java misc/test)

** тестируется в Windows XP *

Не знаете, как это может произойти изнутри IDE. Вы уверены, что он не использует что-то вроде муравья, чтобы запустить его? Я бы искал что-то вроде «misc/test» или «misc \ test» и заменил его на «misc.test» (при условии, что misc - это пакет).

+0

Привет, да, он запускает его непосредственно из среды IDE (щелкните правой кнопкой мыши на файле и выберите «Запустить файл»). Поэтому я не понимаю, почему это происходит. Может быть, NetBeans будет действовать странно.Файлы, которые он не может запустить, находятся в «тестовых пакетах» в NetBeans, но он может запускать файлы, находящиеся в «Исходных пакетах». – Stian

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