जावा रनटाइम निर्भरता के बिना डेस्कटॉप जावा गेम कैसे वितरित किया जा सकता है?


9

क्या जावा एप्लिकेशन को एक स्टैंडअलोन पैकेज में बदलना संभव है जो "बॉक्स से बाहर" चलता है? अंतिम उपयोगकर्ता को किसी भी जावा JRE को स्थापित करने की आवश्यकता नहीं होनी चाहिए, न ही इंस्टॉलर में एक JRE होना चाहिए और उपयोगकर्ता के लिए इसे स्थापित करना चाहिए।

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

यह कैसे किया जा सकता है?

जवाबों:


8

मुख्य बिंदु यह है कि अंतिम उपयोगकर्ता को किसी भी जावा JRE को स्थापित करने की आवश्यकता नहीं होनी चाहिए, न ही इंस्टॉलर में एक JRE होना चाहिए और उपयोगकर्ता के लिए स्थापित होना चाहिए

आप मशीन कोड संकलक के लिए जावा स्रोत / बायटेकोड का उपयोग कर सकते हैं। हैं एक्सेलसियर जेट विंडोज और लिनक्स (लाइसेंस की आवश्यकता है) और के लिए जावा के लिए GNU कम्पाइलर जो पुराना है।

यदि जावा को बिना इंस्टॉल किए अपने गेम के साथ रखना ठीक है, तो आप संभवतः जावा रनटाइम को अपने गेम के साथ पैकेज कर सकते हैं और गेम शुरू करने JAVA_HOMEसे पहले अपने जेआरटी स्थान पर सेट करने के लिए एक स्टार्ट स्क्रिप्ट का उपयोग कर सकते हैं।

संपादित करें: (टिप्पणी प्रतिक्रिया) दूसरे विकल्प का उपयोग करते हुए, आपको उस प्लेटफ़ॉर्म के लिए उपयुक्त जावा रनटाइम का उपयोग करके विभिन्न प्लेटफार्मों के लिए अलग-अलग बिल्ड की आवश्यकता होगी।

EDIT2: Aslo दिमित्री की हालिया टिप्पणी देखें।


3
यदि आपका गेम गैर-व्यावसायिक है, तो आप एक नि: शुल्क एक्सेलसियर जेईटी लाइसेंस प्राप्त कर सकते हैं
दिमित्री लेसकोव

दूसरा विकल्प अच्छा लगता है, लेकिन अगर मैं अपने विंडोज जेआरई को पैकेज करता हूं, तो क्या यह क्रॉसप्लांट है? इसी तरह एक्सेलसियर के साथ, मुझे तीन अलग-अलग ओएस पर ऐसे कंपाइलर चलाने की आवश्यकता होगी?
leokhorn

1
आपको प्रत्येक रिलीज़ के साथ JRE के प्लेटफ़ॉर्म को बंडल करने की आवश्यकता होगी, लेकिन अनिवार्य रूप से यह क्रॉस प्लेटफ़ॉर्म रहेगा।
डेरेक

1
@leokhorn किसी बिंदु पर, मूल कोड होना चाहिए। या तो आपको मूल कोड को संकलित करना होगा, या आपको एक देशी वीएम पर चलना होगा। सी। की कोई योजना नहीं है
एड्रियन

1
GCJ अब आधिकारिक रूप से मृत हो गया है , जबकि एक्सेलसियर जेईटी मानक संस्करण व्यावसायिक उपयोग के लिए स्वतंत्र हो गया है , हालांकि यदि आपकी एकमात्र चिंता वितरण में आसानी है, तो कई विकल्प हैं
दिमित्री लेसकोव

1

मैक के लिए, मैक के लिए जावा ऐप की पैकेजिंग के लिए ओरेकल दस्तावेज़ देखें । उन्होंने जावा 7 स्थापित किया है ताकि आप रनटाइम को अपनी जार फ़ाइलों (.app एक फ़ोल्डर वास्तव में निष्पादन योग्य के रूप में माना जाता है) के साथ एक बंडल में बंडल कर सकते हैं, जो मैक ऐप स्टोर पर वितरण के लिए आवश्यक है। मूल रूप से, .app बंडल ज्यादातर Eren के JAVA_HOME उत्तर के समान होता है, लेकिन इसे "मूल" मैक ऐप के रूप में पैक किया जाता है।

मैक ऐप स्टोर के बिना वितरण के लिए, आप अपने माउंटेन लॉयन उपयोगकर्ताओं को यह कहते हुए ऐप पर हस्ताक्षर नहीं कर सकते हैं कि वे गेटकीपर के आसपास मिल सकते हैं, अपने ऐप पर राइट-क्लिक (या ctrl + क्लिक) करके और जब वे "ओपन" पर क्लिक कर सकते हैं सबसे पहले ऐप खोलें। यह अभी भी उन्हें चेतावनी देगा कि ऐप पर हस्ताक्षर नहीं किए गए हैं, लेकिन यह उन्हें वैसे भी इसे खोलने की अनुमति देगा, और फिर बाद में खुलने के लिए उन्हें ऐप पर डबल क्लिक करने की अनुमति देगा।

(साइड नोट: आप निष्पादन योग्य के रूप में शेल स्क्रिप्ट के लिनक्स-स्टाइल मार्किंग के साथ भी दूर हो सकते हैं और फिर एक .apple निर्माण कर सकते हैं। नेटबीन्स मैक और लिनक्स पर ऐसा करता है, हालांकि बिना बंडल JRE / JDK के)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.