Я только что вернулся, чтобы исправить некоторые ошибки в небольшой программе, которую я написал, и теперь я не могу скомпилировать, поскольку пакет не существует (согласно javac).
Насколько я знаю, я ничего не изменил ни в моем пути к классам, ни в содержимом моих каталогов. Я не знаю, были ли какие-либо обновления Java между ними.
В моем корневом каталоге у меня есть четыре файла Java, которые составляют мою программу. У них нет приписанного им пакета. Кроме того, у меня есть структура каталогов org\apache\commons\cli
в корневом каталоге, которая содержит Java-файлы CLI от Apache Commons. У файлов Apache есть приписанный пакет, который отражает структуру каталогов, в которых они лежат.
Если я введу команду javac -verbose -d build CommandLine.java
, произойдет сбой с
CommandLine.java:28: package org.apache.commons.cli does not exist
import org.apache.commons.cli.*;
^
CommandLine.java
является точкой входа в программу.
Компилятор не пытается компилировать файлы CLI, и если я скомпилирую их заранее, сбой все равно будет иметь место. Кроме того, CLI также доступен в моем classpath.
Я использую javac 1.6.0_12.
Что я могу сделать / попробовать?
.
РЕДАКТИРОВАНИЕ ДЛЯ ОТВЕТА:
Как принято ниже, я изменил команду компиляции следующим образом:
javac -verbose -d build -classpath . CommandLine.java
Теперь это работает. Не знаю, почему это было раньше, и почему это прекратилось сейчас ...
.
ИЗДАНО ДЛЯ ПРИЧИНЫ ПРОБЛЕМЫ
Я установил программу, которая также использовала CLASSPATH для запуска своих собственных вещей. Он изменил CLASSPATH, принадлежавший пользователю, но оставил глобальный в покое. Я снова добавил java classpath, и он снова работает!