JVM के स्टार्टअप समय गति बढ़ाने के लिए खुद आवेदन वर्गों जोड़कर, सूर्य डेवलपर्स फैसला किया कि यह एक अच्छा विचार JVM की स्थापना के दौरान एक मंच के लिए मानक क्रम कक्षाएं precompile है। इन precompiled कक्षाओं को पाया जा सकता है उदा। पर:स्पीड अप आवेदन शुरू classes.jsa को
$ JAVA_HOME \ JRE \ बिन \ ग्राहक \ classes.jsa
मेरी कंपनी वर्तमान में एक जावा अनुप्रयोग जो अपनी ही JRE लाता है विकसित करता है, तो यह समय शुरू हमारे आवेदन तेजी लाने के लिए एक शानदार विकल्प होगा इस जेएसए फ़ाइल में भी अपनी खुद की एप्लिकेशन कक्षाएं जोड़कर।
मैं नहीं मानता अर्जी फ़ाइल जादू द्वारा बनाया गया था, तो कैसे यह बनाई गई है? और मैं अपने स्वयं के वर्गों को शामिल करने के लिए जेवीएम कैसे चाल सकता हूं?
संपादित: मैं पहले से ही निम्नलिखित पता चला:
classes.jsa आदेश
java -Xshare:dump
द्वारा बनाई गई है वर्गों डंप में शामिल करने के लिए की सूची $JAVA_HOME/jre/lib/classlist
में पाया जा सकता।
मैं भी यहाँ मेरे अपने वर्गों को जोड़ने के लिए (और उन्हें जावा उन्हें खोजने के लिए के लिए rt.jar में जोड़ने के लिए), और classlist फ़ाइल नीचे अपने ही checksum उत्पन्न करने में कामयाब रहे।
अंतिम समस्या है: अगर मैं उनके मूल पैकेज में एक ही कक्षाएं छोड़ संकुल जावा, com.sun, और org.w3c में केवल कक्षाएं, मान्यता प्राप्त हो रहे हैं, वे लोड नहीं किया जाएगा। मैंने इस बारे में पॉइंटर के लिए पूरे ओपनजेडीके स्रोत की खोज की, लेकिन ऐसा लगता है कि सुरक्षा डोमेन के साथ कुछ करना है। अगर कोई इस विषय में पर्याप्त दिलचस्पी लेता है और पर्याप्त जानकारी देता है, तो कृपया मेरे लिए investigaete आगे कुछ पॉइंटर्स जोड़ें।
आप साझा कर सकते हैं कि कैसे आप चेकसम पुनर्गणना? – coppit
मुझे एम्बेडेड जावा के लिए एक स्लाइड डेक में मेरा जवाब मिला - ओपनजेड स्रोत पेड़ में AddJsum नामक एक उपयोगिता है। http://www.oracle.com/technetwork/jp/ondemand/java/20110519-java-a-1-greg-400531-ja.pdf – coppit
धन्यवाद, जब मैं समय प्राप्त करता हूं तो मैं इसे आजमा सकता हूं। – Daniel