Как я могу заставить javac искать дочерние каталоги пути к классам?

У меня 3 файла: /a/A.java /a/aa/AA.java /b/B.java а B.java зависит от A.java и AA.java.

Я в основном хочу, чтобы javac -classpath / a /b/B.java работал (т.е. имел поиск javac ниже / a). Как я могу это сделать?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
482
1

Ответы 1

Короткий ответ - нет, каталоги пути к классам работают не так.

Каждый каталог пути к классам рассматривается как корень структуры пакета. Каждый пакет - это каталог в корне. Итак, javac сделает это автоматически, если aa - это каталог пакета, а a - корень. Ваши классы будут выглядеть так:

/a/A.java

class A {}

/a/aa/AA.java

package aa;
class AA {}

/b/B.java

package b;
import aa.AA;

class B {
  private AA aaInstance;
  private A aInstance;
}

Поскольку у A нет пакета, он помещается в корневой пакет.

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

Другие вопросы по теме