Следующие операторы кажутся беспокоящими:
robert@neghvar:~/tmp> cat org/foo/Bar.java
public class Bar {
}
robert@neghvar:~/tmp> javac org/foo/Bar.java
robert@neghvar:~/tmp> javap org.foo.Bar
Compiled from "Bar.java"
public class org.something.Bar extends java.lang.Object{
public org.something.Bar();
}
Хотя файл класса Bar находится в каталоге org/foo
и объявляет пакет org.something
, компилятор не жалуется.У меня сложилось впечатление, что Java предписывает иерархию каталогов, которая следует за именем пакета.Я ошибся?Если да, каковы последствия смешивания имен пакетов?