¿Qué significan estos archivos en el teléfono y para qué sirven?
1. "BT" se refiere al directorio de descarga 2, "libro electrónico" se refiere al libro electrónico 3 y MMS significa mensaje multimedia.
4. El nombre completo en inglés de udx es Universal Data eXchange, que se traduce al chino como "Universal Data Exchange". 5. "cmsbrw" se refiere a: directorio del sistema 6, mobileDat se refiere a - directorio de almacenamiento temporal de datos móviles 7, realnews se refiere a - noticias reales 8, META-INF significa más complicado, de la siguiente manera: Lo entenderás después de leer la siguiente publicación < / p>
A menudo veo gente preguntando en Internet: Cómo compilar un programa java en un archivo .exe. Por lo general, solo hay dos respuestas. Una es crear un paquete de archivos JAR ejecutable, en el que luego se puede hacer doble clic para ejecutarlo como un archivo .chm y la otra es usar JET para compilar. Pero JET debe comprarse con dinero y se dice que JET no puede compilar todos los programas Java en archivos ejecutables y el rendimiento se verá comprometido. Por lo tanto, utilizar el método de crear un paquete de archivos JAR ejecutable es la mejor opción, sin mencionar que puede mantener las características multiplataforma de Java.
Echemos un vistazo a qué es un paquete de archivos JAR:
1. Paquete de archivos JAR
El archivo JAR es un archivo Java Archive. Su aplicación está estrechamente relacionada con Java y es un formato de documento de Java. Un archivo JAR es muy similar a un archivo ZIP; para ser precisos, es un archivo ZIP, por lo que se denomina paquete de archivos. La única diferencia entre un archivo JAR y un archivo ZIP es que el contenido del archivo JAR contiene un archivo META-INF/MANIFEST.MF, que se crea automáticamente cuando se genera el archivo JAR. Por ejemplo, si tenemos unos archivos con la siguiente estructura de directorios:
==
`-- test
`-- Test.class
Comprimirlo en un archivo ZIP test.zip, luego la estructura de directorio interna de este archivo ZIP es:
test.zip
`-- test
`-- Test.class
Si usamos el comando jar JDK para convertirlo en un paquete de archivos JAR test.jar, la estructura de directorios internos de este archivo JAR es:
prueba.jar
|-- META-INF
| `-- MANIFEST.MF
`-- prueba
`- -Test.class
2. Crear un paquete de archivos JAR ejecutable
Crear un paquete de archivos JAR ejecutable para publicar su programa es el uso más típico de los paquetes de archivos JAR.
Los programas Java se componen de varios archivos .class. Estos archivos .class deben almacenarse en jerarquías y directorios según los paquetes a los que pertenecen; antes de ejecutarlos, también debe especificar el directorio raíz de todos los paquetes utilizados en la variable de entorno CLASSPATH o el parámetro -cp del comando java; debe ir a la consola cuando se ejecuta Utilice el comando java para ejecutar. Si necesita hacer doble clic para ejecutar directamente, debe escribir un archivo por lotes de Windows (.bat) o un programa Shell de Linux. Por lo tanto, mucha gente dice que Java es un lenguaje de programación conveniente para desarrolladores y usuarios.
De hecho, si el desarrollador puede crear un paquete de archivos JAR ejecutable y entregárselo al usuario, será conveniente que el usuario lo utilice. Al instalar JRE (Java Runtime Environment) en Windows, el archivo de instalación asignará el archivo .jar a javaw.exe para abrirlo.
Luego, para un paquete de archivos JAR ejecutable, el usuario solo necesita hacer doble clic en él para ejecutar el programa, lo cual es tan conveniente como leer un documento .chm (el documento .chm se abre mediante hh.exe de forma predeterminada). Entonces, la clave ahora es cómo crear este paquete de archivos JAR ejecutable.
Para crear un paquete de archivos JAR ejecutable, debe utilizar el comando jar con el parámetro cvfm. Tomando el directorio de prueba anterior como ejemplo, el comando es el siguiente:
jar. cvfm test.jar manifest.mf test
Los dos archivos test.jar y manifest.mf aquí son los parámetros correspondientes f y m respectivamente. Porque para crear un paquete de archivos JAR ejecutable, no basta con especificar un archivo manifest.mf, porque MANIFEST es una característica de los paquetes de archivos JAR, y tanto los paquetes de archivos JAR ejecutables como los paquetes de archivos JAR no ejecutables contienen MANIFEST. La clave está en el MANIFEST del paquete de archivos JAR ejecutable, que contiene un elemento Main-Class. Esto está escrito en el siguiente formato en MANIFEST:
Main-Class: el nombre completo de la clase principal ejecutable (incluido el nombre del paquete)
Por ejemplo, supongamos que Test.class en el ejemplo anterior pertenece al paquete de prueba y es una clase ejecutable (el método público estático void main(String[]) está definido), entonces este manifest.mf se puede editar de la siguiente manera:
Main -Class: test.Test
Este manifest.mf se puede colocar en cualquier ubicación, o puede ser otro nombre de archivo. Solo necesita tener una línea: Main-Class: test. Prueba y la línea termina con un carácter de retorno de carro. Después de crear el archivo manifest.mf, nuestra estructura de directorios se convierte en:
==
|-- test
| `-- Test.class
`-- manifest.mf
En este momento, debe ir al directorio de nivel superior del directorio de prueba y usar el comando jar para crear un paquete de archivos JAR. Es decir, en el directorio representado por "==" en el árbol de directorios, utilice el siguiente comando:
jar cvfm test.jar manifest.mf test
Después de "==" Test.jar se crea en el directorio y este test.jar es el paquete de archivos JAR ejecutado. Simplemente use el comando java -jar test.jar cuando lo ejecute.
Cabe señalar que el paquete de archivos JAR creado debe contener una estructura de directorio completa correspondiente a la estructura del paquete del programa Java, como en el ejemplo anterior. La clase especificada por Main-Class también debe ser un nombre de clase completo que incluya la ruta del paquete, como test.Test en el ejemplo anterior y puede usar java
3. Explicación detallada del comando jar
jar se instala con JDK en el directorio bin en el directorio de instalación de JDK, el nombre del archivo es jar.exe y el nombre del archivo. bajo el jar de Linux. Su funcionamiento requiere el archivo tools.jar en el directorio lib en el directorio de instalación de JDK. Pero no necesitamos hacer nada excepto instalar el JDK, porque SUN ya lo hizo por nosotros. Ni siquiera necesitamos poner tools.jar en CLASSPATH.
Usando el comando jar sin ningún comando jar podemos ver el uso del comando jar de la siguiente manera:
jar {ctxu}[vfm0M] [archivo-jar] [archivo-manifiesto ] [- directorio C] Nombre de archivo...
Donde {ctxu} es un subcomando del comando jar. Cada comando jar solo puede contener uno de ctxu, que representan respectivamente:
-t Enumerar el contenido del paquete de archivos JAR
-x Expandir el archivo especificado o todos los archivos del paquete de archivos JAR
-u actualiza el paquete de archivos JAR existente (agrega archivos al paquete de archivos JAR)
Las opciones en [vfm0M] pueden ser opcionales o no estar seleccionadas, son los parámetros de opción del comando jar
-v genera un informe detallado y lo imprime en la salida estándar
-f especifica el nombre del archivo JAR, normalmente este parámetro es obligatorio
-m especifica el MANIFEST archivo de manifiesto que debe incluirse
-0 solo almacena, no comprime, el paquete de archivos JAR generado será más grande que el generado sin este parámetro, pero más rápido
-M lo hace no genera una lista de todos los elementos (archivo MANIFEST), este parámetro ignorará el parámetro -m
[archivo-jar] es el paquete de archivos JAR que debe generarse, verse, actualizarse o descomprimirse. es un parámetro subsidiario del parámetro -f
[archivo-manifiesto] es el archivo de manifiesto MANIFEST, que es un parámetro accesorio del parámetro -m
[-directorio-C] significa vaya al directorio especificado para ejecutar el comando jar, que es equivalente a la operación Primero use el comando cd para cambiar al directorio y luego ejecute el comando jar sin el parámetro -C. Solo está disponible al crear y actualizar el archivo JAR. paquetes.
Nombre de archivo... Especifique un archivo/directorio. Lista, estos archivos/directorios son los archivos/directorios que se agregarán al paquete de archivos JAR. en el directorio se incluirá automáticamente en el paquete al empaquetar
Los siguientes son algunos ejemplos para ilustrar el uso del comando jar:
1) jar cf test.jar test <. /p>
Este comando no muestra el proceso de ejecución y el resultado de la ejecución está en el directorio actual. Se genera el archivo test.jar. Si test.jar ya existe en el directorio actual, el archivo se sobrescribirá.
2) jar cvf test.jar test
Este comando tiene el mismo resultado que el ejemplo anterior, pero debido a la función del parámetro v, el proceso de empaquetado se muestra como sigue:
Marcar manifiesto (manifiesto)
Agregar: prueba/(lectura = 0) (escritura = 0) (0% almacenado)
Agregar: prueba /Test .class (lectura = 7) (escritura = 6) (14% comprimido)
3) jar cvfM test.jar test
Este comando tiene resultados similares a 2 ), Sin embargo, el archivo META-INF/MANIFEST no está incluido en el test.jar generado y la información del proceso de empaquetado también es ligeramente diferente:
Agregado: prueba/(lectura = 0) ( escritura = 0)( 0% almacenado)
Añadido: test/Test.class (lectura = 7) (escritura = 6) (14% comprimido)
4) prueba jar cvfm .jar manifest.mf test
Los resultados de la ejecución son similares a 2) y la información mostrada también es la misma, excepto que el contenido de META-INF/MANIFEST en el paquete JAR generado es diferente y contiene el contenido de manifest.mf
5) jar tf test.jar
Cuando test.jar ya existe, puede ver el contenido de test.jar, por ejemplo, test. .jar generado por 2) y 3) debe ser Los resultados de este comando son los siguientes
Para 2)
META-INF/
META-; INF/MANIFEST.MF
prueba/
prueba/Test.class
Para 3)
prueba/
test/Test.class
6) jar tvf test.jar
Además del contenido que se muestra en 5), también incluye información detallada sobre los archivos del paquete, tales como:
0 miércoles 19 de junio 15:39:06 GMT 2002 META-INF/
86 miércoles 19 de junio 15:39:06 GMT 2002 META-INF/MANIFEST.MF
0 miércoles 19 de junio 15:33:04 prueba GMT de 2002/
7 miércoles 19 de junio 15:33:04 prueba GMT de 2002/Test.class
7) jar xf test.jar
Desbloquee test.jar al directorio actual sin mostrar ninguna información. Para el test.jar generado en 2), la estructura del directorio descomprimido es la siguiente:
<. p>==|-- META-INF
| `-- MANIFEST
`-- prueba
`-- Test.class
8) jar xvf test.jar
El resultado de la ejecución es el mismo que 7). Se muestra información detallada sobre el proceso de descompresión, como por ejemplo:
Crear: META-INF/
Expandir: META-INF/MANIFEST .MF
Crear: prueba/
Expandir: prueba/Test.class
9) jar uf test.jar manifest.mf
El archivo manifest.mf se agrega a test.jar. Utilice jar tf para ver test.jar. Hay una m más en test.jar que antes.
manifestado. Por cierto, si usa el parámetro -m y especifica el archivo manifest.mf, entonces manifest.mf se usa como el archivo de manifiesto MANIFEST y su contenido se agregará al MANIFEST, sin embargo, si se agrega al JAR; archivo como un archivo normal En el paquete, no es diferente de un archivo normal.
10) jar uvf test.jar manifest.mf
El resultado es el mismo que 9), y se muestra información detallada, como por ejemplo:
Agregado : manifest.mf (lectura = 17) (escritura = 19) (-11% comprimido)
4. Algunos consejos sobre el empaquetado de archivos JAR
1) Utilice descomprimir para descomprimir archivos JAR.
Como se mencionó al presentar los archivos JAR, los archivos JAR son en realidad archivos ZIP, por lo que puede usar algunas herramientas comunes para descomprimir archivos ZIP para descomprimir archivos JAR, como WinZip y WinRAR en Windows, etc., y descomprimirlos en Windows. Linux, etc. Utilice WinZip y WinRAR para descomprimir porque son más intuitivos y cómodos de descomprimir. Utilice descomprimir porque puede utilizar el parámetro -d para especificar el directorio de destino al descomprimir.
Al descomprimir un archivo JAR, no puede utilizar el parámetro -C de jar para especificar el objetivo de descompresión, porque el parámetro -C solo está disponible al crear o actualizar un paquete. Luego, cuando necesite descomprimir el archivo en un directorio específico, primero debe copiar el archivo JAR al directorio de destino y luego descomprimirlo, lo cual es bastante problemático. Si usa descomprimir, no necesita tomarse tantas molestias. Solo necesita especificar un parámetro -d. Por ejemplo:
descomprimir test.jar -d dest/
2) Utilice herramientas como WinZip o WinRAR para crear un archivo JAR
El archivo JAR mencionado Lo anterior incluye el archivo ZIP META-INF/MANIFEST, por lo que solo necesita usar WinZip, WinRAR y otras herramientas para crear el archivo ZIP requerido y luego agregar un directorio META-INF que contenga el archivo MANIFEST al archivo ZIP. Cuando utilice el parámetro -m del comando jar para especificar un archivo de manifiesto, solo necesita modificar MANIFEST según sea necesario.
3) "META-INF" no tiene un significado específico. Lo entenderás dando un ejemplo: usa el comando jar para crear un archivo ZIP.
Algunos Linux proporcionan el comando de descomprimir. pero no existe un comando zip, por lo que es necesario descomprimir el archivo ZIP, es decir, no se puede crear el archivo ZIP. Si desea crear un archivo ZIP, use el comando jar con el parámetro -M. Debido a que el parámetro -M significa no agregar la lista MANIFEST al crear el paquete JAR, solo necesita cambiar la extensión .jar a donde está el destino. Se especifica el archivo JAR. La extensión .zip crea un archivo ZIP completo. Por ejemplo, cambie ligeramente el ejemplo 3) de la sección anterior:
jar cvfM test.zip test
.