Actualmente estoy trabajando en una aplicación de pulido J2ME, simplemente mejorándola. Encuentro dificultades para obtener la versión exacta del archivo jar. ¿Hay alguna forma de encontrar la versión del archivo jar para las importaciones realizadas en la clase? Quiero decir, si tienes algo, importa xyz; ¿Podemos saber la versión del paquete jar xy a la que pertenece?
jar
version
executable-jar
Ritesh Mengji
fuente
fuente
sqljdbc42.jar
archivos que he usado con Cognos, pero Cognos puede informar una versión (4.2.6420.100). ¿De dónde obtiene esta versión si no está registrada en el manifiesto?Necesita descomprimirlo y verificar su
META-INF/MANIFEST.MF
archivo, por ejemploo más específico:
fuente
Solo para ampliar las respuestas anteriores, dentro del archivo META-INF / MANIFEST.MF en el JAR, es probable que vea una línea:
Manifest-Version: 1.0
← ¡Este NO es el número de versiones del jar!Debe buscar
Implementation-Version
cuál, si está presente, es una cadena de texto libre que depende completamente del autor del JAR en cuanto a lo que encontrará allí. Consulte también los documentos de Oracle y las especificaciones de la versión del paquete.fuente
Solo para completar la respuesta anterior.
El archivo de manifiesto se encuentra dentro de jar en la
META-INF\MANIFEST.MF
ruta.Puede examinar el contenido de jar en cualquier archivador que admita zip.
fuente
Cada versión de jar tiene una suma de comprobación única. Puede calcular la suma de comprobación para su jar (que no tenía información de versión) y compararla con las diferentes versiones del jar. También podemos buscar un frasco usando suma de comprobación.
Consulte esta pregunta para calcular la suma de verificación: ¿Cuál es la mejor manera de calcular una suma de verificación para un archivo que está en mi máquina?
fuente
Básicamente, debes usar la
java.lang.Package
clase que usa el cargador de clases para darte información sobre tus clases.ejemplo:
Creo que se sabe que el logback usa esta función para rastrear el nombre / versión JAR de cada clase en sus trazas de pila producidas.
ver también http://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html#wp90779
fuente
Este programa simple enumerará todos los casos para la versión de jar, a saber
Archivo de manifiesto no encontrado
Utiliza el jar javaxt-core que se puede descargar desde http://www.javaxt.com/downloads/
fuente
Llego tarde, pero puedes probar los siguientes dos métodos
usando estas clases necesarias
Estos métodos me permiten acceder a los atributos del jar. Me gusta ser compatible con versiones anteriores y usar lo último. Entonces usé esto
Esto funciona bien cuando usa maven y necesita detalles de pom para clases conocidas. Espero que esto ayude.
fuente
Para Linux, intente lo siguiente:
encontrar . -name "YOUR_JAR_FILE.jar" -exec zipgrep "Versión de implementación:" '{}' \; | awk -F ':' '{print $ 2}'
fuente
Si tiene winrar, abra el frasco con winrar, haga doble clic para abrir la carpeta
META-INF
. ExtraigaMANIFEST.MF
yCHANGES
archive a cualquier ubicación (digamos escritorio).Abra los archivos extraídos en un editor de texto: verá Versión de implementación o versión de lanzamiento.
fuente
Puede filtrar la versión del archivo MANIFEST usando
unzip -p my.jar META-INF/MANIFEST.MF | grep 'Bundle-Version'
fuente
Bundle-Version
.Pensé que daría una respuesta más reciente ya que esta pregunta todavía aparece bastante alta en las búsquedas.
Comprobación de la versión CLi JAR:
Ejecute lo siguiente en el archivo jar CLi:
Salida de ejemplo:
La versión CLi se enumera arriba.
Para obtener la versión del servidor, ejecute lo siguiente:
(lo anterior variará en función de su implementación de autenticación, cambie en consecuencia)
Salida de ejemplo:
fuente
Se puede comprobar con un comando.
java -jar jarname
fuente
main()
método del JAR