2010-11-26 9 views
9

मैं अपने ऐप के वितरण में $JAVA_HOME/jre से फ़ाइलों की प्रतिलिपि बनाकर अपने ऐप के साथ जेआरई को बंडल कर रहा हूं। यह जावा की भावना के खिलाफ हो सकता है, लेकिन यह सुनिश्चित करके संभावित समस्याएं कम कर देता है कि मेरा ऐप जेआरई के एक संस्करण पर चलता है जिस पर इसका परीक्षण किया गया था (शीर्षक सहित; मैं कुछ जेएनआई का उपयोग करता हूं जिसके लिए जरूरी है कि जेआरई 32-बिट संस्करण है)।जेआरई को एक आवेदन के साथ बंडल करने के लिए स्ट्रिपिंग - मैं क्या छोड़ सकता हूं?

यह ठीक काम करता है, लेकिन पूरा वितरण कुछ बड़ा है, तो हो सकता है कि कुछ अनावश्यक फाइलें छोड़ी जा सकें?

फ़ाइलों को जावा SE रनटाइम वातावरण बनाने दो श्रेणियों में विभाजित किया गया है:: आवश्यक और वैकल्पिक दरअसल, $JAVA_HOME/jre/README.txt निम्नलिखित सलाह शामिल हैं। विक्रेता के विवेकाधिकार पर जावा एसई रनटाइम पर्यावरण के पुनर्वितरण से वैकल्पिक फ़ाइलों को को बाहर रखा जा सकता है।

निम्नलिखित खंड में फ़ाइलों और निर्देशिकाओं की एक सूची है जो वैकल्पिक रूप से जावा एसई रनटाइम पर्यावरण के साथ पुनर्वितरण से छोड़ी जा सकती है। वैकल्पिक फ़ाइलों की इन सूचियों में नहीं सभी फ़ाइलें रनटाइम पर्यावरण के पुनर्वितरण में शामिल होनी चाहिए।

... जब एक निजी आवेदन क्रम (अन्य अनुप्रयोगों द्वारा सुलभ नहीं) एक कस्टम लांचर के साथ के रूप में माइक्रोसॉफ्ट विंडोज पर JRE पुनर्वितरण, निम्न फ़ाइलें भी वैकल्पिक हैं। ये लाइब्रेरीज़ और निष्पादन योग्य हैं जिनका उपयोग इंटरनेट एक्सप्लोरर और मोज़िला परिवार ब्राउज़र में जावा समर्थन के लिए किया जाता है; इन फ़ाइलों को एक निजी जेआरई पुनर्वितरण में आवश्यक नहीं है।

bin\java.exe 
bin\javaw.exe 
bin\javaws.exe 

कैसे java/javaw.exe वैकल्पिक जा सकता है:

मुझे क्या पहेली है कि वैकल्पिक फ़ाइलों की सूची भी शामिल है, दूसरों के बीच में है? मुझे उनके बिना जावा एप्लिकेशन कैसे शुरू करना चाहिए? जाहिर है, मुझे कुछ (संभावित) नहीं पता है, या निर्देश बस गलत हैं।

+1

आपको http: // stackoverflow में रुचि हो सकती है।कॉम/प्रश्न/2258 9 32/एम्बेड-ए-जेरे-इन-ए-विंडोज-एक्जिक्यूटिव – Thilo

उत्तर

2

कस्टम लॉन्चर के साथ एक निजी अनुप्रयोग रनटाइम (अन्य अनुप्रयोगों द्वारा सुलभ नहीं) के रूप में माइक्रोसॉफ्ट विंडोज पर जेआरई को फिर से वितरित करते समय, निम्न फ़ाइलें भी वैकल्पिक हैं।

यदि आप अपने स्वयं के एप्लिकेशन में JVM (अपने साझा पुस्तकालयों के विरुद्ध लिंक करके) एम्बेड करते हैं, तो आपको स्टैंडअलोन लॉन्चर निष्पादन योग्य की आवश्यकता नहीं है। मुझे लगता है कि उदाहरण के लिए ग्रहण उस तरह से काम करता है।

यदि आपका ऐप जावा निष्पादन योग्य (उदाहरण के लिए बैच फ़ाइल के माध्यम से) का उपयोग करता है, तो आपको निश्चित रूप से उनकी आवश्यकता है।

+0

ठीक है, तो 'java.exe' सिर्फ एक प्रकार का लॉन्चर है, और कुछ लॉन्चर्स (शायद launch4j) में समान कार्यक्षमता है? –

+0

मैंने लॉन्च 4j का उपयोग नहीं किया है, लेकिन उनकी वेबसाइट पर तस्वीर बहुत कुछ दिखती है जैसे यह कर सकती है, हां। – Thilo

0

launch4j जैसे टूल का उपयोग करके इसे निष्पादन योग्य में कैसे परिवर्तित करें? कुछ और सुझाव आप here लगता है (स्वीकार किए जाते हैं जवाब में नहीं)

1

इस सख्ती से पूरे कार्यक्रम (या पूरे मंच) को हटाने के "गैर-आवश्यक कोड" के अनुकूलन के लिए, प्रश्न से संबंधित नहीं है, वहीं मुझे एक अच्छा उपकरण होने के लिए ProGuard मिला है। YMMV।

संबंधित मुद्दे