Это является раздражающим.
У меня есть структура каталогов как это
-lib
--some jar files
-packageName
--Main.java
--SomeOtherPackage
--SomeOtherJavaClass.java
Импорт Main.java SomeOtherPackage
. И оба файла Java используют банки в lib.
То, что я делаю, добавляют файлы банки независимо в ПУТИ К КЛАССУ. И затем выполненный как: javac packageName/Main.java
но это дает ошибке тот Пакет, не найденный SomeOtherPackage
. Не был должен это автоматически понимать зависимость и сборку SomeOtherPackage
также? Каковы были бы команда javac и путь к классу для вышеупомянутого случая?
Спасибо
Обычной практикой является добавление корня пакета в путь к классам.
Когда вы уже находитесь в корне пакета, используйте -cp.
. Например.
cd /path/to/all/packages
javac -cp . packageName/Main.java
Если вы хотите также включить файлы JAR, используйте ;
(или в * nix, :
) в качестве разделителя пути к классам:
javac -cp .;lib/file.jar packageName/Main.java
Чтобы сэкономить время в повторяя весь набор команд оболочки, используйте файл .bat
(или в * nix a .sh
). Или просто IDE, если вы уже знакомы с java / javac и т. Д.
Вам нужно добавить packageName в CLASSPATH, чтобы он мог найти SomeOtherPackage