una para librerias libreria incluir generar externas empaquetar ejecutable cuál crear configuración con compilar archivos archivo app agregar java jar

java - para - generar un jar con eclipse



¿Pueden las clases del mismo paquete extenderse en múltiples archivos Jar? (5)

Estoy usando algunas clases de un archivo JAR y pertenecen a un paquete (com.abc.xyz).

La clase que estoy escribiendo también pertenece a ese paquete, pero no podré agrupar mi archivo en ese archivo JAR. ¿Es posible tener clases que pertenecen al mismo paquete distribuidas en varios archivos JAR?


A veces, debe hacerlo si desea ampliar la funcionalidad de las bibliotecas de terceros, pero no están abiertas y / o no tiene fuentes.


Es bastante factible a menos que el JAR haya sellado el paquete.


No veo por qué no sería posible. Todo lo que importa es que las clases están en el classpath.


Por defecto, absolutamente.

Sin embargo, si desea asegurarse de que las clases de un paquete en particular solo se carguen desde un archivo jar, puede agregar esa información al manifiesto .


Probablemente no sea algo que debas hacer. Si está en el mismo paquete, no debería estar empaquetado (creo que Jigsaw pretende permitir la división de paquetes entre módulos, pero eso es un hervidor de pescado diferente).

Se puede bloquear si cualquiera de los paquetes está marcado como sellado en el manifiesto. Recomendaría marcar frascos enteros como sellados como una cuestión de rutina.

También se puede bloquear si hay diferentes firmantes en las clases y las clases están cargadas por el mismo cargador de clases.

Si carga clases usando un cargador de clases diferente, aunque el "espacio de nombres" será el mismo, en realidad no obtendrá acceso al paquete (y parte relevante del contenido protegido).