¶øJAR£¨Java ARchive£©Îļþ×÷ΪJavaÓ¦ÓóÌÐòµÄ·Ö·¢ºÍ²¿Êðµ¥Ôª£¬ÆäÖØÒªÐÔ²»ÑÔ¶øÓ÷
È»¶ø£¬ÔÚʵ¼Ê¿ª·¢ÖУ¬ÎÒÃdz£³£ÐèÒª¶ÔÒÑ·¢²¼µÄJARÎļþ½øÐÐÄÚÈÝÐ޸쬱ÈÈç¸üÐÂÀàÎļþ¡¢Ìí¼Ó×ÊÔ´Îļþ»òµ÷ÕûÅäÖÃÎļþµÈ
ÔÚLinuxÕâһǿ´óÇÒÁé»îµÄ²Ù×÷ϵͳÉÏ£¬½øÐдËÀà²Ù×÷²»½ö¸ßЧ¶øÇÒ°²È«¿É¿¿
±¾ÎĽ«ÉîÈë̽ÌÖÔÚLinux»·¾³ÏÂÈçºÎ¸ßЧµØÐÞ¸ÄJARÎļþ£¬º¸Ç»ù´¡×¼±¸¡¢¾ßÌå²½ÖèÒÔ¼°×î¼Ñʵ¼ù£¬Ö¼ÔÚΪ¶ÁÕßÌṩһ·ÝÏ꾡¶øÊµÓõÄÖ¸ÄÏ
Ò»¡¢»ù´¡×¼±¸£º¹¤¾ßÓë»·¾³ ÔÚLinuxÉϲÙ×÷JARÎļþ£¬Ê×ÏÈÐèҪȷ±£ÄãµÄϵͳ°²×°ÁËJava¿ª·¢¹¤¾ß°ü£¨JDK£©
JDK²»½ö°üº¬ÁËJavaÔËÐÐʱ»·¾³£¨JRE£©£¬»¹ÌṩÁ˱àÒëJavaÔ´´úÂë¡¢´ò°üJARÎļþµÈ¹¤¾ß
¶ÔÓÚ´ó¶àÊýLinux·¢Ðа棬Äã¿ÉÒÔͨ¹ý°ü¹ÜÀíÆ÷ÇáËɰ²×°JDK
ÀýÈ磬ÔÚUbuntuÉÏ£¬Äã¿ÉÒÔʹÓÃÒÔÏÂÃüÁ sudo apt update sudo apt install default-jdk °²×°Íê³Éºó£¬ÑéÖ¤JDKÊÇ·ñ°²×°³É¹¦²¢²é¿´°æ±¾ÐÅÏ¢£º java -version javac -version ³ýÁËJDK£¬Ä㻹ÐèҪһЩ¸¨Öú¹¤¾ßÀ´´¦ÀíJARÎļþ£¬Èç`jar`ÃüÁJDK×Ô´ø£©¡¢`unzip`£¨ÓÃÓÚ½âѹJARÎļþ£©ºÍ`zip`£¨ÓÃÓÚÖØÐ´ò°ü£©
ÕâЩ¹¤¾ßÔÚ´ó¶àÊýLinux·¢ÐаæÖÐĬÈϰ²×°£¬Èôδ°²×°£¬¿Éͨ¹ý°ü¹ÜÀíÆ÷°²×°
¶þ¡¢Àí½âJARÎļþ½á¹¹ JARÎļþ±¾ÖÊÉÏÊÇÒ»¸öZIPѹËõ°ü£¬°üº¬ÁËJavaÀàÎļþ¡¢×ÊÔ´Îļþ£¨ÈçͼƬ¡¢ÅäÖÃÎļþ£©ÒÔ¼°¿ÉÄܵÄMETA-INFĿ¼£¨°üº¬JARÎļþµÄÔªÊý¾Ý£¬ÈçMANIFEST.MFÎļþ£©
Á˽âJARÎļþµÄ½á¹¹¶ÔÓÚ¾«×¼ÐÞ¸ÄÖÁ¹ØÖØÒª
Äã¿ÉÒÔʹÓÃ`unzip`ÃüÁî²é¿´JARÎļþµÄÄÚÈÝ£º unzip -l your-app.jar Õ⽫ÁгöJARÎļþÖеÄËùÓÐÎļþºÍĿ¼
Èý¡¢ÐÞ¸ÄJARÎļþµÄ¾ßÌå²½Öè 3.1 ÌáÈ¡JARÎļþÄÚÈÝ Ê×ÏÈ£¬½«JARÎļþµÄÄÚÈݽâѹµ½Ò»¸öÁÙʱĿ¼ÖУº mkdir temp-jar-contents unzip your-app.jar -d temp-jar-contents 3.2 ½øÐÐËùÐèÐÞ¸Ä ÏÖÔÚ£¬Äã¿ÉÒÔ×ÔÓɵØÔÚ`temp-jar-contents`Ŀ¼Öб༻òÌí¼ÓÎļþ
ÀýÈ磬Èç¹ûÄãÒªÌæ»»Ò»¸öÀàÎļþ£¬ÕÒµ½¶ÔÓ¦µÄ`.class`Îļþ²¢Ì滻Ϊеİ汾£»Èç¹ûÒªÌí¼Ó×ÊÔ´Îļþ£¬Ö±½Ó½«Æä·ÅÈëÏàÓ¦µÄĿ¼
3.3 ¸üлò´´½¨MANIFEST.MFÎļþ Èç¹ûÐÞ¸ÄÁËÉæ¼°°üÒÀÀµ¡¢Èë¿ÚµãµÈÔªÊý¾ÝµÄÎļþ£¬ÐèÒªÏàÓ¦µØ¸üÐÂ`META-INF/MANIFEST.MF`Îļþ
Õâͨ³£Éæ¼°µ½±à¼Îı¾Îļþ£¬¿ÉÒÔʹÓÃÈκÎÄãϲ»¶µÄÎı¾±à¼Æ÷£¬Èç`nano`¡¢`vim`»ò`gedit`£¨ÔÚͼÐνçÃæÏ£©
3.4 ÖØÐ´ò°üJARÎļþ Íê³ÉËùÓÐÐ޸ĺó£¬Ê¹ÓÃ`jar`ÃüÁîÖØÐ´ò°ü£º cd temp-jar-contents jar cvf ../modified-app.jar ÕâÀïµÄ`c`´ú±í´´½¨ÐµÄJARÎļþ£¬`v`±íʾÉú³ÉÏêϸÊä³ö£¨¿ÉÑ¡£©£¬`f`Ö¸¶¨Êä³öÎļþÃû
±íʾ½«µ±Ç°Ä¿Â¼ÏµÄËùÓÐÎļþºÍĿ¼´ò°ü
3.5 ÇåÀíÁÙʱÎļþ ×îºó£¬²»ÒªÍü¼ÇÇåÀíÁÙʱĿ¼ÒÔÊͷſռ䣺 cd .. rm -rf temp-jar-contents ËÄ¡¢¸ß¼¶¼¼ÇÉÓë×î¼Ñʵ¼ù 4.1 ʹÓ÷´±àÒ빤¾ßÀí½â´úÂë ÓÐʱºò£¬Äã¿ÉÄÜÐèÒªÀí½â»òÐÞ¸ÄÏÖÓеÄJavaÀàÎļþ£¬µ«Ô´´úÂëÒѶªÊ§
Õâʱ£¬¿ÉÒÔÀûÓ÷´±àÒ빤¾ß£¨Èç`javap`¡¢`JD-GUI`»ò`CFR`£©½«`.class`Îļþת»»»Ø¿É¶ÁµÄJavaÔ´´úÂë
²»¹ý£¬Çë×¢Ò⣬·´±àÒë¿ÉÄÜÉæ¼°°æÈ¨ºÍ·¨ÂÉÎÊÌ⣬Îñ±ØÔںϷ¨ºÏ¹æµÄǰÌáÏÂʹÓÃ
4.2 ×Ô¶¯»¯½Å±¾ ¶ÔÓÚÆµ·±ÐèÒªÐÞ¸ÄJARÎļþµÄ³¡¾°£¬±àд×Ô¶¯»¯½Å±¾¿ÉÒÔ´ó´óÌá¸ßЧÂÊ
Ò»¸ö¼òµ¥µÄBash½Å±¾¿ÉÒÔ°üº¬½âѹ¡¢Ð޸ġ¢´ò°üºÍÇåÀíµÄËùÓв½Ö裬ͨ¹ý²ÎÊý»¯ÔöÇ¿Áé»îÐÔ
4.3 ±¸·ÝÔʼJARÎļþ ÔÚ½øÐÐÈκÎÐÞ¸Ä֮ǰ£¬Ê¼ÖÕ±¸·ÝÔʼJARÎļþ
Õâ²»½öÊÇÁ¼ºÃʵ¼ù£¬Ò²ÊDZÜÃâÔÖÄÑÐÔºó¹ûµÄ¹Ø¼ü²½Öè
4.4 ÑéÖ¤Ð޸ĺóµÄJARÎļþ ÐÞ¸ÄÍê³Éºó£¬Îñ±Ø²âÊÔÐÂÉú³ÉµÄJARÎļþÒÔÈ·±£ËùÓй¦Äܰ´Ô¤ÆÚ¹¤×÷
Õâ°üÀ¨ÔËÐе¥Ôª²âÊÔ¡¢¼¯³É²âÊÔÒÔ¼°ÊÖ¶¯²âÊÔ
4.5 °²È«ÐÔ¿¼ÂÇ ÔÚ´¦ÀíJARÎļþʱ£¬ÒªÌرð×¢ÒⰲȫÐÔÎÊÌâ£¬ÌØ±ðÊǵ±´Ó²»¿ÉÐÅÀ´Ô´ÏÂÔØ»ò½ÓÊÕJARÎļþʱ
È·±£Ö»ÔËÐо¹ýÑéÖ¤ºÍÐÅÈεÄJARÎļþ£¬±ÜÃâÖ´ÐÐDZÔڵĶñÒâ´úÂë
Îå¡¢×ܽá ÔÚLinux»·¾³ÏÂÐÞ¸ÄJARÎļþËäÈ»¿´ËƸ´ÔÓ£¬µ«Í¨¹ýÕÆÎÕ»ù´¡¹¤¾ß¡¢Àí½âJARÎļþ½á¹¹ÒÔ¼°×ñÑ×î¼Ñʵ¼ù£¬ÕâÒ»¹ý³Ì¿ÉÒÔ±äµÃ¸ßЧÇÒ¿É¿¿
ÎÞÂÛÊǼòµ¥µÄÎļþÌæ»»£¬»¹ÊǸ´ÔӵĴúÂëÐ޸ģ¬Linux¶¼ÌṩÁËÇ¿´óµÄÖ§³Ö
¸üÖØÒªµÄÊÇ£¬Í¨¹ý×Ô¶¯»¯½Å±¾ºÍÁ¼ºÃµÄʵ¼ù£¬Äã¿ÉÒÔ½«ÕâÒ»¹ý³Ì±ê×¼»¯£¬½øÒ»²½ÌáÉý¿ª·¢Ð§ÂʺÍÖÊÁ¿
Ëæ×ÅJavaÉú̬µÄ²»¶Ï·¢Õ¹ºÍLinuxϵͳµÄ¹ã·ºÓ¦Óã¬ÕÆÎÕÕâÒ»¼¼ÄܶÔÓÚJava¿ª·¢ÕßÀ´ËµÖÁ¹ØÖØÒª
Ï£Íû±¾ÎÄÄܳÉΪÄã̽Ë÷ÕâÒ»ÁìÓòµÄµÃÁ¦ÖúÊÖ£¬ÖúÄãÔÚJava¿ª·¢µÄµÀ·ÉÏÔ½×ßÔ½Ô¶