¿Es un .NET Assembly lo mismo que java .jar?
Juegan el mismo papel, sí.
.dll contiene código IL compilado y .jar contiene archivos de código .class/byte cumplimentados?
Sí. Aunque los JAR son solo archivos zip (puedes abrirlos en tu herramienta Zip favorita), así que realmente pueden contener casi cualquier cosa.
Dicen recursos, ¿de qué tipo de recursos estamos hablando aquí? ¿Imágenes, archivos .txt, etc. o todos ellos posibles?
Se permite cualquier tipo de archivo en un JAR. Su código Java puede acceder al contenido de los archivos dentro del contenedor a través de, por ejemplo, getResourceAsStream o getResource. Obviamente, los archivos .class en un JAR se tratan especialmente (como bytecode).
He examinado AWS (Amazon Web Service API para java) y vi tres archivos .jar y son: aws-java-sdk-1.1.1.jar, aws-java-sdk-1.1.1 -javadoc.jar, aws-java-sdk-1.1.1-sources.jar
El embalaje anterior es bastante común. A veces las personas usan .jar como una extensión de archivo alternativa a .zip. Encuentro esta práctica confusa, pero no es poco común, y Amazon lo ha hecho en este caso. Creo que esta práctica se hizo más común con el lanzamiento de Maven, que almacena código fuente de referencia en archivos llamados .jar.
aws-java-sdk-1.1.1.jar - Este es el único archivo necesario para la compilación y la ejecución. Contiene las clases (archivos .class) y los recursos necesarios para que funcione la biblioteca.
aws-java-sdk-1.1.1-sources.jar - Esto es solo un archivo zip que contiene el código fuente (archivos .java) para la biblioteca. No es necesario para compilación o ejecución. Se proporciona para ayudarlo a solucionar problemas que pueda encontrar al usar la biblioteca. Puede descomprimir este archivo y leer el código fuente de su disco duro. Sin embargo, su IDE probablemente pueda utilizar este archivo directamente creando un "archivo adjunto de origen" para el JAR de la biblioteca principal. Con esta biblioteca-> asociación de origen configurada en su IDE, su IDE podrá mostrarle el código fuente de la biblioteca cuando use la función "Ir a definición" de IDE en una clase de biblioteca.
aws-java-sdk-1.1.1-javadoc.jar - Esto es solo un archivo zip que contiene JavaDoc para la biblioteca. Nuevamente, no es necesario para compilación o ejecución. JavaDoc es solo HTML, por lo que podría descomprimir este archivo y leer el HTML de JavaDoc directamente desde su disco duro. Sin embargo, la mayoría de los IDE pueden crear un "archivo adjunto de javadoc" a la biblioteca principal, que le permite extraer JavaDoc contextual para la biblioteca desde el IDE. En realidad, la mayoría de los IDE pueden generar JavaDoc sobre la marcha desde -sources.jar, por lo que rara vez uso javadoc jars.
Cuando quiero importar bibliotecas de Java, ¿siempre tendré que importar archivos .jar?
Se suele llamar "agregar JAR al classpath", pero sí. Casi siempre necesita ayudar a Java a encontrar todos los JAR que está utilizando al construir un classpath cada vez que compila o ejecuta. En general, el uso de JAR y classpaths es un proceso mucho más manual y explícito que el uso de DLL en .NET. Por ejemplo: Java no tiene un equivalente directo de la "caché de ensamblados global" de .NET; también vainilla Java no cargará automáticamente .jars desde el directorio de trabajo.
Hay algunas otras técnicas para crear una ruta de clase de sensación más "automática", pero están un poco avanzadas: las classpaths de Manifest.MF son posibles, por ejemplo, pero este enfoque se usa con poca frecuencia ya que es frágil. A partir de Java 6, Java tiene soporte limitado para usar wildcards in the classpath.
Cuando quiero exportar mis propias bibliotecas de Java, en caso de que necesite exportar en el archivo .jar
Esta es la norma, sí.
Yo mismo me he estado preguntando esto, ¡ojalá pudiera dar más votos favorables! – John
Soy todo lo contrario. Estoy aprendiendo .NET estos días después de Java. – KJW