2013-05-01 4 views
0

Я работаю над пониманием того, как работает ситуация с импортом/классом Java. Я хочу создать ошибку компиляции, поэтому я сказал: «Позвольте мне попробовать сыграть с переменными среды Java» (например, сделать JAVA_HOME равно JAV_HOM или т. Д.).Как я могу сломать (для тестирования) переменные среды Java classpath?

enter image description here Но похоже, что это не сработает. Все прекрасно компилируется. Имеет ли значение, что я использую drJava? Я даже пытался перезапустить, но этого не делал.

ответ

1

Свертывание с JAVA_HOME вряд ли разрушит путь к классам.

Переменная окружения JAVA_HOME в основном используется для указания вашего кода (если необходимо знать) и любых сторонних инструментов, где расположена установка Java. Установка Java (например, инструменты java и javac) не обращает на это внимания. Когда вы запускаете эти команды, вы неявно указываете местоположение установки ... это каталог grandparent инструмента Java, который вы используете.

Во-вторых, материал в установке, что может не найти (например, «rt.jar» и файлы «tools.jar»), на самом деле на «Загрузочный путь» не регулярный путь к классам. Формируются загрузочный путь к классам неявно соответствующим инструментами ... если вы явно не переопределить его с помощью команды параметров линии и т.д.


Теперь я не знаю, как drJava управляет своим путем к классам. Он может обратить внимание на переменную среды CLASSPATH, но я не удивлюсь, если она ее проигнорирует. (IDE обычно управляют classpath по-своему, на основе структур проекта и т. П.)

Если вы хотите поэкспериментировать следующим образом, вам лучше будет работать java и javac из командной строки. Для них путь к классам определяется либо параметром -jar (и тем, что находится в манифесте JAR), либо параметром -cp, либо переменной окружения CLASSPATH. Это описано в онлайн-руководстве для команды java.

+0

Большое спасибо Стивен! – Coffee

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