2016-06-28 1 views
0

Когда я меняю свою переменную CLASSPATH на JUNIT_HOME/junit-4.12.jar в системных переменных, моя команда Java перестает работать.Изменение CLASSPATH на JUNIT_HOME/junit-4.12.jar, команда java перестает работать

Например, когда я хочу выполнить файл класса, я получаю сообщение об ошибке «Не удалось найти или загрузить основной класс», хотя javac работает нормально.

Когда я удаляю CLASSPATH, команда java снова начинает работать.

ответ

2

Переменная CLASSPATH - это один из способов рассказать приложениям, включая инструменты JDK, где искать классы пользователей. Когда вы запускаете Java-команду для запуска приложения Java, она запускает среду выполнения Java, загружает указанный класс и вызывает основной метод этого класса.

Если ваша переменная CLASSPATH установлена ​​в JUNIT_HOME/junit-4.12.jar, будут загружены только классы внутри JUNIT_HOME/junit-4.12.jar. Таким образом, вы получите сообщение об ошибке Could not find or load main class.

Предпочтительный способ указания пути к классу состоит в использовании переключателя командной строки -cp. Это позволяет устанавливать CLASSPATH индивидуально для каждого приложения, не затрагивая другие приложения.

Значение по умолчанию для пути к классу: ".", что означает, что выполняется поиск только текущего каталога. Если вы также хотите найти файл классов в другом каталоге, скажем, в классах c:\otherDirectory, вы можете установить путь класса к следующему:

java -classpath ".;c:\otherDirectory" 
1

У вас есть больше банок, которым нужно идти по пути к классу? JUNIT предназначен только для тестовых целей, и я бы предположил, что вам нужно добавить все зависимости, которые вы используете также в пути к классам. С другой стороны, это не рекомендуется делать с помощью переменных системной среды. Также обратите внимание на команду java -classpath, тогда вы можете добавить зависимости классов для одного приложения или команды.

Смежные вопросы