Подтвердить что ты не робот

Каков путь по умолчанию по умолчанию, если не указывается путь к классам?

Интересно, какой будет путь по умолчанию по умолчанию, если не указывать опцию classpath?

4b9b3361

Ответ 1

Текущий рабочий каталог (.).

Из Java & trade; tutorials: PATH и CLASSPATH:

Значением по умолчанию для пути к классу является "." , что означает, что выполняется поиск только текущего каталога. Указание переменной CLASSPATH или командной строки -cp переопределяет это значение.

Включает ли это подкаталоги?

Нет, никакая запись в пути к классам не является "рекурсивной". Вы должны указать каждый подкаталог (или jar) явно. Однако, если у вас есть файл Example.class, представляющий класс pkg.subpkg.Example, и используется путь по умолчанию по умолчанию, то этот файл должен находиться в ./pkg/subpkg/Example.class.

Если java пытается разрешить pkg.subpkg.Example, он будет выглядеть в /pkg/subpkg каждой записи пути к траектории. То есть вам не нужно перечислять ., pkg и pkg/subpkg в пути к классам, только ..

Ответ 2

Я думаю, что люди отвечают на этот вопрос слишком буквально. Да, CLASSPATH по умолчанию имеет значение ".", Но есть куча классов, которые автоматически загружаются, даже если вы не устанавливаете CLASSPATH или используете аргумент командной строки -classpath.

Следующее - хорошее место, чтобы узнать об этом процессе:

http://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html

Ответ 3

Это текущий рабочий каталог "."

Вы также можете проверить это самостоятельно

class CheckClassPath{
    public static void main(String args[]){
        System.out.println(System.getProperty("java.class.path"));
    }
}

Ответ 4

Путь по умолчанию - это текущий каталог. Установка переменной CLASSPATH или использование параметра командной строки -classpath переопределяет это значение по умолчанию, поэтому, если вы хотите включить текущий каталог в путь поиска, вы должны включить ".". в новых настройках. официальное руководство