2016-07-08 3 views
3

В командной строке, как я могу увидеть все папки и файлы, содержащие текущий ток Java classpath?Распечатайте путь класса Java в macOS (Mac OS X)

Oracle Tutorial говорит, что использует Unix-подобные системы echo $CLASSPATH. Но на Mac (El Capitan) с Java 8, который ничего не печатает. Как я помню, по умолчанию переменная среды CLASSPATH не используется в macOS.

Я видел некоторые вопросы, такие как this, которые показывают заходящего путь к классам, но я просто хочу, чтобы проверить пути к классам.

Есть ли какой-нибудь простой путь из командной строки для изучения текущего пути к классам?

ответ

1

Я не уверен, что $ CLASSPATH доступен в OSX по умолчанию. Но, $PATH может вам помочь. Эта переменная содержит информацию о каталогах, которые содержат исполняемые команды.

+1

Вопрос только о [Java Classpath] (https://en.wikipedia.org/wiki/Classpath_ (Java)), но не во всех исполняемых файлах. –

1

Если вы явно не задали переменную CLASSPATH в текущей оболочке или в вашем профиле входа (например, ~/.bash_profile), тогда нет способа показать, что это такое.

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

+0

Я подозреваю, что вы смешиваете переменную окружения 'CLASSPATH' с функцией Java Classpath. Эта переменная является одним из способов указать путь к классам, но не * * полностью определяет путь к классам. Например, на Mac переменная не используется вообще по умолчанию, пока есть активный путь к классам, который включает в себя несколько файлов и папок. –

+0

Для тех, кто хочет получить этот ответ. Вот он: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html В нем говорится: «По умолчанию используется текущий каталог, позволяющий удобно находить эти классы». – BrettG

1

В коде Java сделать:

System.out.println(System.class.path); 

В этом списке перечислены все пути к классам в файлы JAR (классы платформы Java), класс путь для вашего проекта и т.д. пути к классам, разделенных точкой с запятой. Майкл Маркидис прав: «Если у вас нет набора CLASSPATH, тогда значение по умолчанию для пути к классу равно«. », Что означает, что поиск выполняется только в текущем каталоге». И вы должны найти это в этом списке.

Когда классы хранятся в директории (папке), например C: \ Java \ MyClasses \ утилиты \ MyApp, то путь класса точки входа в каталог, который содержит первый элемент имени пакета (в этот случай, C: \ java \ MyClasses, потому что имя пакета - утилита.myapp).

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

+1

Это больше не компилируется –