Я использую Notepad ++ для написания кода Java и командную строку для его компиляции и запуска. Ниже приведен мой пример кода Java,
package abraKadabra;
public class SuperClass{
protected int anInstance;
public static void main(String [] abc){
System.out.println("Hello");
}
}
Однако этот файл находится в следующей структуре папок:
"usingprotected \ superPkg" (usingProtected - это папка где-то в иерархии в C :)
Итак, мое имя пакета здесь должно быть что-то вроде usingProtected.superPkg вместо abraKadabra, как я писал.
Но когда я компилирую этот Java-код из командной строки, он компилируется нормально, без ошибок или предупреждений. Почему это так? Разве имя пакета не должно соответствовать структуре папок? И если бы это было так, как бы оно прилипло?
Например, если имя моего пакета usingProtected.superPkg, компилятор будет проверять в обратном порядке. Текущий рабочий каталог должен быть superPkg, затем родительский каталог должен быть usingProtected, и все готово. Это как он проверяет структуру папок с именем пакета?