JAR (file format)
જેએઆર ("જાવા આર્કાઇવ") ફાઇલ એ એક પેકેજ ફાઇલ ફોર્મેટ છે જેનો ઉપયોગ સામાન્ય રીતે ઘણી જાવા વર્ગની ફાઇલો અને સંકળાયેલ મેટાડેટા અને સંસાધનો (લખાણ, છબીઓ, વગેરે) ને એકત્રિત કરવા માટે થાય છે. વિતરણ માટે એક ફાઇલમાં. જેએઆર ફાઇલો આર્કાઇવ ફાઇલો છે જેમાં જાવા-વિશિષ્ટ મેનિફેસ્ટ ફાઇલનો સમાવેશ થાય છે. તેઓ ઝીપ ફોર્મેટ પર બનેલા છે અને સામાન્ય રીતે તેમાં. جار ફાઇલ એક્સ્ટેંશન હોય છે. ડિઝાઇન એ જેએઆર ફાઇલ જાવા રનટાઇમ્સને એક જ વિનંતીમાં તેના વર્ગો અને તેમના સંકળાયેલ સંસાધનો સહિત સમગ્ર એપ્લિકેશનને અસરકારક રીતે ગોઠવવાની મંજૂરી આપે છે. જેએઆર ફાઇલ ઘટકો સંકુચિત થઈ શકે છે, ડાઉનલોડ સમય ઘટાડી શકે છે. JAR ફાઇલમાં મેનિફેસ્ટ ફાઇલ હોઈ શકે છે, જે META-INF/MANIFEST. MF પર સ્થિત છે. મેનિફેસ્ટ ફાઇલમાંની એન્ટ્રીઓ વર્ણવે છે કે JAR ફાઇલનો ઉપયોગ કેવી રીતે કરવો. દાખલા તરીકે, ક્લાસપાથ એન્ટ્રીનો ઉપયોગ જે. એ. આર. સાથે લોડ કરવા માટે અન્ય જે. એ. આર. ફાઇલોને સ્પષ્ટ કરવા માટે થઈ શકે છે. ફાઇલની સામગ્રી કોઈપણ આર્કાઇવ નિષ્કર્ષણ સોફ્ટવેરનો ઉપયોગ કરીને કાઢવામાં આવી શકે છે જે ઝીપ ફોર્મેટને ટેકો આપે છે, અથવા જાવા ડેવલપમેન્ટ કિટ દ્વારા પ્રદાન કરાયેલ જાર કમાન્ડ લાઇન યુટિલિટી. સુરક્ષા વિકાસકર્તાઓ જે. એ. આર. ફાઇલો પર ડિજિટલ હસ્તાક્ષર કરી શકે છે. તે કિસ્સામાં, સહીની માહિતી એમ્બેડેડ મેનિફેસ્ટ ફાઇલનો ભાગ બની જાય છે. જેએઆર પોતે સહી કરેલ નથી, પરંતુ તેના બદલે આર્કાઇવની અંદરની દરેક ફાઇલ તેના ચેકસમ સાથે સૂચિબદ્ધ છે; તે આ ચેકસમ છે જે સહી કરેલ છે. બહુવિધ સંસ્થાઓ જે. એ. આર. ફાઇલ પર સહી કરી શકે છે, દરેક સહી સાથે જે. એ. આર. ફાઇલને બદલી શકે છે, જો કે સહી કરેલી ફાઇલો પોતે જ માન્ય રહે છે. જ્યારે જાવા રનટાઇમ સહી કરેલી JAR ફાઇલોને લોડ કરે છે, ત્યારે તે સહીઓને માન્ય કરી શકે છે અને સહી સાથે મેળ ન ખાતા વર્ગોને લોડ કરવાનો ઇનકાર કરી શકે છે. તે 'સીલબંધ' પેકેજોને પણ સમર્થન આપી શકે છે, જેમાં ક્લાસલોડર ફક્ત જાવા વર્ગોને એક જ પેકેજમાં લોડ કરવાની મંજૂરી આપશે જો તે બધા સમાન ઘટકો દ્વારા હસ્તાક્ષરિત હોય. આ દૂષિત કોડને હાલના પેકેજમાં દાખલ થવાથી અટકાવે છે, અને તેથી પેકેજ-સ્કોપ વર્ગો અને ડેટાની ઍક્સેસ મેળવે છે. રિવર્સ એન્જિનિયરિંગને વધુ મુશ્કેલ બનાવવા માટે જે. એ. આર. ફાઇલોની સામગ્રીને અસ્પષ્ટ કરી શકાય છે. એક્ઝેક્યુટેબલ JAR ફાઇલો એક એક્ઝેક્યુટેબલ જાવા પ્રોગ્રામ જે. એ. આર. ફાઇલમાં પેક કરી શકાય છે, જે પ્રોગ્રામ ઉપયોગ કરે છે તે કોઈપણ લાઈબ્રેરીઓ સાથે. એક્ઝિક્યુટેબલ જે. એ. આર. ફાઇલોમાં મેનિફેસ્ટ હોય છે જે મુખ્ય-વર્ગ સાથે પ્રવેશ બિંદુ વર્ગને સ્પષ્ટ કરે છેઃ myPrograms.MyClass અને સ્પષ્ટ વર્ગ-પાથ (અને-cp દલીલને અવગણવામાં આવે છે). જ્યારે ક્લિક કરવામાં આવે ત્યારે કેટલીક ઓપરેટિંગ સિસ્ટમો આને સીધા જ ચલાવી શકે છે. લાક્ષણિક વિનંતી આદેશ વાક્યમાંથી જાવા-જાર foo.jar છે. મોટાભાગના પ્લેટફોર્મ પર નેટિવ લોન્ચર બનાવી શકાય છે. દાખલા તરીકે, માઇક્રોસોફ્ટ વિન્ડોઝ વપરાશકર્તાઓ કે જેઓ વિન્ડોઝ EXE ફાઇલો રાખવાનું પસંદ કરે છે, તેઓ એક જ JAR ફાઇલોને એક્ઝેક્યુટેબલમાં લપેટી લેવા માટે JSmoth, Launch4J, WinRun4J અથવા nullssoft સ્ક્રિપ્ટબલ ઇન્સ્ટોલ સિસ્ટમ જેવા સાધનોનો ઉપયોગ કરી શકે છે. મેનિફેસ્ટ ફાઇલ એ જેએઆરની અંદર રહેલી મેટાડેટા ફાઇલ છે. તે વિસ્તરણ અને પેકેજ-સંબંધિત ડેટાને વ્યાખ્યાયિત કરે છે. તેમાં વિભાગોમાં ગોઠવાયેલી નામ-મૂલ્ય જોડી હોય છે. જો જે. એ. આર. ફાઇલનો ઉપયોગ એક્ઝેક્યુટેબલ ફાઇલ તરીકે કરવાનો હોય, તો મેનિફેસ્ટ ફાઇલ એપ્લિકેશનના મુખ્ય વર્ગને સ્પષ્ટ કરે છે. મેનિફેસ્ટ ફાઇલને MANIFEST.MF નામ આપવામાં આવ્યું છે. મેનિફેસ્ટ ડિરેક્ટરી કોમ્પ્રેસ્ડ આર્કાઇવની પ્રથમ એન્ટ્રી હોવી જોઈએ. સ્પષ્ટીકરણો મેનિફેસ્ટ અધિકૃત સ્થાન META-INF/MANIFEST. MF પર દેખાય છે. આર્કાઇવમાં માત્ર એક જ મેનિફેસ્ટ ફાઇલ હોઈ શકે છે અને તે તે સ્થાન પર હોવી જોઈએ. જાવા ડેવલપમેન્ટ કિટના વર્ઝન 1 સાથે બનાવવામાં આવેલી JAR ફાઇલમાં મેનિફેસ્ટ ફાઇલની સામગ્રી નીચે મુજબ છે. મેનિફેસ્ટ-વર્ઝનઃ 1 નામ કોલોન દ્વારા તેના મૂલ્યથી અલગ પડે છે. ડિફોલ્ટ મેનિફેસ્ટ દર્શાવે છે કે તે મેનિફેસ્ટ સ્પષ્ટીકરણના સંસ્કરણ 1 ને અનુરૂપ છે. મેનિફેસ્ટમાં આર્કાઇવમાં પેક કરેલી અન્ય ફાઇલો વિશેની માહિતી હોઈ શકે છે. મેનિફેસ્ટ સમાવિષ્ટો જેએઆર ફાઇલના હેતુપૂર્વકના ઉપયોગ પર આધારિત છે. મૂળભૂત મેનિફેસ્ટ ફાઇલ અન્ય ફાઇલો વિશે કઈ માહિતી રેકોર્ડ કરવી જોઈએ તે વિશે કોઈ ધારણાઓ કરતી નથી, તેથી તેની એક જ લીટીમાં ફક્ત તેના વિશેની માહિતી હોય છે. તેને યુટીએફ-8માં એન્કોડ કરવું જોઈએ. સ્પેશિયલ પર્પઝ મેનિફેસ્ટ હેડર જે. એ. આર. ફાઇલો માત્ર સંગ્રહિત કરવાના હેતુ માટે બનાવવામાં આવી છે, તે MANIFEST.MF ફાઇલનો ઉપયોગ કરતી નથી. જેએઆર ફાઇલોનો મોટાભાગનો ઉપયોગ સરળ સંગ્રહ અને સંકોચનથી આગળ વધે છે અને મેનિફેસ્ટ ફાઇલમાં વિશેષ માહિતીની જરૂર પડે છે. લાક્ષણિકતાઓ મેનિફેસ્ટ વિકાસકર્તાઓને તેમની બરણીઓ માટે કેટલીક ઉપયોગી સુવિધાઓને વ્યાખ્યાયિત કરવાની મંજૂરી આપે છે. ગુણધર્મો કી-વેલ્યુ જોડીમાં નિર્દિષ્ટ કરવામાં આવે છે. જો કોઈ એપ્લિકેશન JAR ફાઇલમાં સમાયેલી હોય, તો જાવા વર્ચ્યુઅલ મશીનને એપ્લિકેશનના પ્રવેશ બિંદુને જાણવાની જરૂર છે. પ્રવેશ બિંદુ એ જાહેર સ્થિર રદબાતલ મુખ્ય (શબ્દમાળા [] આરજીએસ) પદ્ધતિ ધરાવતો કોઈપણ વર્ગ છે. આ માહિતી મેનિફેસ્ટ મેઇન-ક્લાસ હેડરમાં આપવામાં આવી છે, જેનું સામાન્ય સ્વરૂપ છેઃ મેઇન-ક્લાસઃ com.example.MyClassName આ ઉદાહરણમાં com.example.MyClassName. મેઇન () એપ્લિકેશન લોન્ચ સમયે એક્ઝિક્યુટ થાય છે. પેકેજ સીલિંગ વૈકલ્પિક રીતે, જેએઆર ફાઇલની અંદરના પેકેજને સીલ કરી શકાય છે, જેનો અર્થ છે કે તે પેકેજમાં વ્યાખ્યાયિત તમામ વર્ગો એક જ જેએઆર ફાઇલમાં સંગ્રહિત છે. સોફ્ટવેરમાં વર્ગો વચ્ચે આવૃત્તિ સુસંગતતા સુનિશ્ચિત કરવા માટે અથવા સુરક્ષા પગલા તરીકે પેકેજને સીલ કરી શકાય છે. પેકેજને સીલ કરવા માટે, નામ એન્ટ્રી દેખાય છે, ત્યારબાદ સીલ કરેલ હેડર દેખાય છે, જેમ કેઃ નામ માય કંપની/માય પેકેજ/સીલ કરેલુંઃ સાચું નામ હેડરનું મૂલ્ય એ પેકેજનું સંબંધિત પાથનામ છે. નોંધ લો કે તે ફાઇલના નામથી અલગ પાડવા માટે '/' સાથે સમાપ્ત થાય છે. નામ હેડરને અનુસરતા કોઈપણ હેડર, કોઈપણ મધ્યવર્તી ખાલી રેખાઓ વિના, નામ હેડરમાં ઉલ્લેખિત ફાઇલ અથવા પેકેજ પર લાગુ થાય છે. ઉપરના ઉદાહરણમાં, કારણ કે સીલ કરેલું હેડર નામ પછી આવે છેઃ માયકોમ્પની/માયપેકેજ હેડર જેમાં કોઈ મધ્યવર્તી ખાલી રેખાઓ નથી, સીલ કરેલું હેડર પેકેજ માયકોમ્પની/માયપેકેજ પર (ફક્ત) લાગુ થાય છે. સીલબંધ પેકેજોની વિશેષતા જાવા 9 માં રજૂ કરાયેલ જાવા પ્લેટફોર્મ મોડ્યુલ સિસ્ટમ દ્વારા જૂની થઈ ગઈ છે, જેમાં મોડ્યુલો પેકેજોને વિભાજિત કરી શકતા નથી. પેકેજ વર્ઝન કેટલાક મેનિફેસ્ટ હેડર વર્ઝનની માહિતી ધરાવે છે. દરેક પેકેજ માટે હેડરનો એક સમૂહ સોંપી શકાય છે. સંસ્કરણ હેડર પેકેજ માટે નામ હેડરની સીધી નીચે દેખાય છે. આ ઉદાહરણ તમામ આવૃત્તિ શીર્ષકો બતાવે છેઃ નામ જાવા/ઉપયોગ/સ્પષ્ટીકરણ-શીર્ષકઃ "જાવા ઉપયોગિતા વર્ગો" સ્પષ્ટીકરણ-સંસ્કરણઃ "1.2" સ્પષ્ટીકરણ-વિક્રેતાઃ "સન માઇક્રોસિસ્ટમ્સ, ઇન્ક". અમલીકરણ-શિર્ષકઃ "java.util" અમલીકરણ-આવૃત્તિઃ "બિલ્ડ57" અમલીકરણ-વિક્રેતાઃ "સન માઇક્રોસિસ્ટમ્સ, ઇન્ક". બહુ-પ્રકાશન એ બરણી વૈકલ્પિક રીતે બહુ-પ્રકાશન બરણી તરીકે ચિહ્નિત કરી શકાય છે. બહુ-પ્રકાશન સુવિધાનો ઉપયોગ લાઇબ્રેરી વિકાસકર્તાઓને જાવા રનટાઇમના સંસ્કરણના આધારે વિવિધ કોડ લોડ કરવાની મંજૂરી આપે છે. આ બદલામાં વિકાસકર્તાઓને સુસંગતતાનો ત્યાગ કર્યા વિના નવી સુવિધાઓનો લાભ લેવાની મંજૂરી આપે છે. એક બહુ-પ્રકાશન બરણી મેનિફેસ્ટમાં નીચેની ઘોષણાનો ઉપયોગ કરીને સક્ષમ કરવામાં આવે છેઃ બહુ-પ્રકાશનઃ સાચું અવલંબન MANIFEST.MF ફાઇલનો ઉપયોગ તમામ વર્ગોને સ્પષ્ટ કરવા માટે કરી શકાય છે કે જે એપ્લિકેશનને ચલાવવા માટે સક્ષમ થવા માટે લોડ થવી આવશ્યક છે. નોંધ લો કે ક્લાસ-પાથ એન્ટ્રીઓ ખાલી જગ્યાઓ સાથે સીમાંકિત કરવામાં આવે છે, સિસ્ટમ પાથ સીમાંકન સાથે નહીં. pkg1.jar પાથ/થી/pkg2. جار અપાચે એન્ટ ઝિપ/JAR સપોર્ટ અપાચે એન્ટ બિલ્ડ ટૂલ પાસે ઝિપ અને JAR આર્કાઇવ્સ વાંચવા અને લખવા માટે તેનું પોતાનું પેકેજ છે, જેમાં યુનિક્સ ફાઇલસિસ્ટમ એક્સ્ટેંશન માટેના સપોર્ટનો સમાવેશ થાય છે. org.apache.tools.zip પેકેજ અપાચે સોફ્ટવેર ફાઉન્ડેશન લાઇસન્સ હેઠળ બહાર પાડવામાં આવ્યું છે અને કીડીની બહાર ઉપયોગ કરી શકાય તે રીતે ડિઝાઇન કરવામાં આવ્યું છે. સંબંધિત બંધારણો JAR બંધારણ પર કેટલાક સંબંધિત ફાઇલ બંધારણો બને છેઃ WAR (વેબ એપ્લિકેશન આર્કાઇવ) ફાઇલો, જાવા આર્કાઇવ્સ, સંગ્રહિત XML ફાઇલો, જાવા વર્ગો, જાવા સર્વર પૃષ્ઠો અને વેબ એપ્લિકેશન્સ માટેના અન્ય પદાર્થો. આરએઆર (રિસોર્સ એડેપ્ટર આર્કાઇવ) ફાઇલો (આરએઆર ફાઇલ ફોર્મેટ સાથે ગેરસમજ ન થવી જોઈએ), જાવા આર્કાઇવ્સ, જે2ઈઈ કનેક્ટર આર્કિટેક્ચર (જેસીએ) કાર્યક્રમો માટે એક્સએમએલ ફાઇલો, જાવા વર્ગો અને અન્ય ઑબ્જેક્ટ્સ સ્ટોર કરે છે. EAR (એન્ટરપ્રાઇઝ આર્કાઇવ) ફાઇલો સંયુક્ત જાવા આર્કાઇવ્સ પ્રદાન કરે છે જે XML ફાઇલો, જાવા વર્ગો અને એન્ટરપ્રાઇઝ એપ્લિકેશન્સ માટે JAR, WAR અને RAR જાવા આર્કાઇવ ફાઇલો સહિત અન્ય વસ્તુઓને જોડે છે. એસએઆર (સર્વિસ આર્કાઇવ) ઇએઆર જેવું જ છે. તે service.xml ફાઇલ અને તેની સાથે JAR ફાઇલો પ્રદાન કરે છે. એપીકે (એન્ડ્રોઇડ એપ્લિકેશન પેકેજ), જાવા આર્કાઇવ ફોર્મેટનો એક પ્રકાર, એન્ડ્રોઇડ એપ્લિકેશન્સ માટે વપરાય છે. એએઆર (એન્ડ્રોઇડ આર્કાઇવ) નો ઉપયોગ એન્ડ્રોઇડ લાઈબ્રેરીઓના વિતરણ માટે થાય છે, ખાસ કરીને માવેન દ્વારા. પી. એ. આર. (પ્લાન આર્કાઇવ)-એક્લિપ્સ વર્ગો ઓ. એસ. જી. આઈ. એપ્લિકેશન સર્વર દ્વારા સમર્થિત, મલ્ટી-બંડલ ઓ. એસ. જી. આઈ. એપ્લિકેશનોને એક જ આર્કાઇવ તરીકે ગોઠવવાની મંજૂરી આપે છે અને તે જ સર્વરમાં તૈનાત અન્ય પી. એ. આર.-આધારિત એપ્લિકેશનોથી અલગ પાડે છે. કેએઆર (કરાફ આર્કાઇવ)-અપાચે કરાફ ઓએસજીઆઈ એપ્લિકેશન સર્વર દ્વારા સપોર્ટેડ, મલ્ટી-બંડલ, મલ્ટી-ફીચર ઓએસજીઆઈ એપ્લિકેશનોની જમાવટની મંજૂરી આપે છે. આ પણ જુઓ જે. એ. આર. હેલ જાવા પ્લેટફોર્મ મોડ્યુલ સિસ્ટમ ઓપન પેકેજિંગ કન્વેન્શન જે. એ. ડી. (ફાઇલ ફોર્મેટ) જી. આઈ. એફ. એ. આર. હુમલો. એક સ્થિર પુસ્તકાલયો સંદર્ભો બાહ્ય કડીઓ જે. એ. આર. ફાઇલ સ્પષ્ટીકરણ જે. એ. આર. ફાઇલ ઝાંખી આર્કાઇવ બંધારણો જાવા પ્લેટફોર્મ