Недавно я задал вопрос о распространении исполняемых JAR-файлов и их зависимостей, и это заставило меня понять, что мое понимание JAR-файлов может быть в корне ошибочным.
Таким образом, некоторые могут сказать: «Привет! Это дублирующийся вопрос!». Но я говорю «нет», этот вопрос является совершенно отдельным ответвлением этот исходный вопрос, касающийся основ Java!
Если у меня есть приложение, которое зависит, скажем, от CLI Apache Commons, а также от JODA Time, и я упаковываю это приложение в распространяемый JAR, мой первоначальный вопрос был таким: Без включения CLI и JODA JAR в мой JAR , как программа работает на стороне клиента???
Теперь я думаю, что, поскольку мой код, который использует CLI и JODA, компилируется в файлы классов, и этот байт-код - это то, что упаковывается, то нет необходимости включать CLI или JODA (или любой другой сторонний JAR) в мой JAR, так как теперь все это функционирующий байт-код.
Может ли кто-нибудь подтвердить или исправить меня? Это откровение, хотя и запоздалое, ошеломляет.