Разве пакеты не должны соответствовать подкаталогам, в которых находится файл java?

Я сегодня утром писал несколько практических программ для своей сертификации java, и заметил, что я неправильно ввел имя пакета, поэтому оно не соответствует подкаталогу, в котором находился файл java. Я скомпилировал код, ожидая ошибки или, но все скомпилированный файл - даже не предупреждение.

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

Когда я попытался запустить программу, она не сработала, потому что файл .class находился в неправильном каталоге. Я переместил его в правильный каталог и получил эту ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sample/directory
/doesnt/even/exist/OtherPackageMemberModifiers (wrong name: com/sample/chap01/O
therPackageMemberModifiers)

Я думаю, что вижу, что код Java компилирует , если пакет и подкаталог не совпадают, но есть похоже, это не способ запустить код, если вы это сделаете. Это правильно?

8
задан jonny five 29 November 2011 в 12:15
поделиться