Подтвердить что ты не робот

Могут ли классы одного и того же пакета распространяться через несколько файлов Jar?

Я использую некоторые классы из JAR файла и они принадлежат к пакету (com.abc.xyz).

Запись класса am также относится к этому пакету, но я не смогу связать свой файл с этим файлом JAR. Возможно ли, чтобы классы, принадлежащие одному и тому же пакету, распространялись по нескольким JAR файлам?

4b9b3361

Ответ 1

По умолчанию, абсолютно.

Однако, если вы хотите, чтобы классы из определенного пакета загружались только из одного файла jar, вы можете добавить эту информацию в манифест.

Ответ 3

Я не понимаю, почему это невозможно. Все, что имеет значение, это то, что классы находятся в пути к классам.

Ответ 4

Вероятно, это не то, что вам нужно делать. Если он в одном пакете, если он не будет упакован вместе (я считаю, что Jigsaw намеревается разрешить разделение пакетов между модулями, но это другой чайник рыбы).

Он может быть заблокирован, если какой-либо пакет отмечен как запечатанный в манифесте. Я бы рекомендовал маркировать целые банки как запечатанные, как само собой разумеющееся.

Он также может быть заблокирован, если в классах есть разные подписывающие лица, а классы загружаются одним и тем же загрузчиком классов.

Если вы загружаете классы с использованием другого загрузчика классов, хотя "пространство имен" будет одинаковым, вы фактически не получите доступ к пакету (и соответствующей части защищенного).

Ответ 5

Иногда вам нужно это делать, если вы хотите расширить функциональность сторонних библиотек, но они не являются открытыми и/или у вас нет источников