Допустим, у меня есть два класса (Боб и Том), так что Боб использует Тома, но Тому не требуется Боб. Оба эти файла расположены в одной структуре каталогов.
public class Bob {
public static void main(String[] args) {
System.out.println(Tom.MESSAGE);
}
}
public class Tom {
public static String MESSAGE = "Hello World";
}
Если я попытаюсь скомпилировать Bob обычным способом, я также смогу неявно скомпилировать Tom.java
, так как он распознается как зависимость от Bob.java
. Это прекрасно работает.
Но теперь предположим, что я хочу поместить Тома в JAR-файл. Поэтому я собираю Tom.java
и помещаю результаты в JAR-файл: libTom.jar. Теперь я компилирую с classpath, указывающим на libTom.jar
. К сожалению, компилятор видит файл Tom.java
и вызывает его компиляцию, а не использование класса в libTom.jar
. Есть ли способ заставить компилятор пропустить неявную конструкцию Tom.java
, если класс найден в пути к классам?
Я понимаю, что этот пример довольно надуманный. Будьте уверены, что существует более сложный и менее надуманный вариант использования, связанный с этой проблемой. Спасибо.