2013-07-19 6 views
5

सबसे पहले मैं एक पूर्ण जावा शुरुआत कर रहा हूं।जावा - निष्पादन योग्य जार? आसान Decompiling?

मैंने हाल ही में जावा के साथ शुरू किया और चर, लॉजिकल ऑपरेटर, लूप और सामान जैसे कि मैंने जेएफआरम्स के साथ खेला और मेरे दिमाग में कुछ प्रश्न हैं।

  1. मैंने देखा है कि मेरे कार्यक्रम को सहेज कर एक executable jar कार्यक्रम 1 फ़ाइल प्रतीत होता है के रूप में। इसका मतलब यह है कि जब आप पर जा रहे हैं तो ऐसा कुछ विकसित करें जो कई संसाधनों का उपयोग करेगा (छवियों, ऑडियो फ़ाइलें & आदि) वे सभी इस जार फ़ाइल में संग्रहीत होंगे?

  2. दूसरी बात मैंने देखा है कि मैं jar फ़ाइल निकाल सकता हूं और .class फ़ाइलों को काफी आसान बना सकता हूं। इस बात को ध्यान में रखते हुए मान लें कि मैं MySQL डेटाबेस का उपयोग करता हूं और MySQL सर्वर से कनेक्ट करने के लिए मुझे JDBC ड्राइवर का उपयोग करके ऐसा करना है और मुझे चाहिए? पासवर्ड हार्डकोड करें?

  3. Java 3 डी गेम के लिए उपयुक्त है? मैं इससे बहुत दूर हूं, लेकिन मुझे बताएं। मैंने Java 3 डी गेम इंजन जैसे jMonkeyEngine के साथ लिखे गए गेम देखे और मैं प्रभावित हूं, लेकिन मैं Java के आसपास लाल (पढ़ा) पोस्ट धीमा है और 3D गेम के लिए उपयुक्त नहीं है जो मुझे थोड़ा उलझन में डाल देता है।

+1

कोई पासवर्ड कभी भी हार्डकोड नहीं करें। और डेटाबेस को बेनकाब न करें। –

+1

3. गेम उदाहरण: माइनक्राफ्ट जावा – booleanCube

+7

के साथ लिखा गया था यदि आप जावा मूल बातें सीख रहे हैं और 3 डी प्रोग्रामिंग, बंडलिंग और अन्य विषयों के बारे में चिंता कर रहे हैं तो आप खुद को एक एनीयरिसम देने जा रहे हैं। पहले मूल बातें सीखने के साथ चिपकाओ। एक बार जब आप इसके साथ सहज हो जाते हैं, तो अधिक उन्नत विषयों पर जाएं। यदि आप 3 डी गेम डिज़ाइन के अंतिम लक्ष्य के साथ समय निवेश के बारे में चिंतित हैं, तो मत बनो। आप मूल्यवान कौशल सीखेंगे जिन्हें सी/सी ++ या अन्य प्रोग्रामिंग भाषाओं में पोर्ट किया जा सकता है। –

उत्तर

6
  1. आपको लगता है कि, अगर आप चाहते हैं कर सकते हैं। तुम कभी नहीं हार्ड कोड पासवर्ड चाहिए Packaging Programs in JAR Files

  2. किसी भी भाषा में लिखे गए प्रोग्राम किसी भी तरह का रिवर्स इंजीनियर किया जा सकता है, यह जावा चाहे तो हो या नहीं,: Oracle की जावा ट्यूटोरियल में आप निष्पादन योग्य जार फ़ाइलों के निर्माण के बारे में पढ़ा सकते हैं। जावा बाइट कोड के साथ यह decompile करने के लिए काफी आसान है।

  3. 10 साल से अधिक, जब जावा अभी भी युवा था, तो यह मूल कोड से सीधे सी या सी ++ जैसे संकलित भाषाओं की तुलना में अपेक्षाकृत धीमी थी। हालांकि, पिछले कुछ वर्षों में जावा वर्चुअल मशीन में कई प्रगतियां की गई हैं, और जावा कार्यक्रमों का प्रदर्शन कई मामलों में सी ++ के बराबर है। जो लोग अभी भी शिकायत करते हैं कि जावा धीमा है, वे अद्यतित नहीं हैं या जावा के साथ बहुत अधिक वर्तमान अनुभव नहीं है। जावा निश्चित रूप से पर्याप्त तेज़ है, जैसा कि आपने जेमोन्कीइंजिन के साथ डेमो से देखा था। हालांकि, वाणिज्यिक 3 डी ग्राफिक्स गेम के लिए, सी ++ पारंपरिक डी-फैक्टो प्रोग्रामिंग भाषा प्रतीत होता है जिसका उपयोग किया जाता है। ध्यान दें कि हार्डवेयर से प्रदर्शन के आखिरी बिट को निचोड़ने के लिए, आपको विशेष रूप से उस हार्डवेयर के लिए कोड लिखना होगा। जावा इसके लिए सही उपकरण नहीं है, क्योंकि इसे प्लेटफ़ॉर्म-स्वतंत्र होने के लिए डिज़ाइन किया गया है।

+0

धन्यवाद! बहुत बढ़िया जवाब! – user2081339

2
  1. एक विकल्प है कि। यह निश्चित रूप से अनिवार्य नहीं है, आप बाहरी फाइलों से भी संसाधन लोड कर सकते हैं।

  2. यह सच है। ऐसे एप्लिकेशन के लिए सामान्य आर्किटेक्चर क्लाइंट और वास्तविक डेटाबेस के बीच एक एप्लिकेशन सर्वर डालना है। आपके द्वारा नियंत्रित एप्लिकेशन सर्वर डेटाबेस पासवर्ड को जानता है। यह केवल उन ग्राहकों को दिखाता है जो उन्हें करने की अनुमति दी जाती हैं।

  3. Minecraft जावा में लिखा गया है, इसलिए QED। आप जावा में लिखे गए गेम के साथ आधुनिक जीपीयू प्रदर्शन की सीमाओं को धक्का नहीं देंगे, लेकिन यह हर गेम का लक्ष्य नहीं है।

+1

एलडब्ल्यूजेजीएल का उपयोग करने वाले गेम आसानी से जीपीयू को सीमा तक धक्का दे सकते हैं क्योंकि यह जावा के माध्यम से ओपनजीएल तक पहुंच की इजाजत देता है। Minecraft एलडब्ल्यूजेजीएल बीटीडब्ल्यू का उपयोग करता है। –

+0

धन्यवाद :) +1 – user2081339

2
  1. हाँ, आप एक जार
  2. हाँ में सब कुछ डाल सकते हैं, लेकिन डेटाबेस के लिए अविश्वसनीय उपयोगकर्ताओं कच्चे उपयोग करने देने शायद ही कभी एक अच्छा विचार वैसे भी है। सार्वजनिक एपीआई के साथ एक सर्वर ऐप बनाने और उपयोगकर्ताओं को प्रमाणीकृत करने का बेहतर तरीका है।
  3. यह निर्भर करता है। यदि आप जावा से समृद्ध, उच्च-गुणवत्ता वाले ग्राफिक प्रभावों पर केंद्रित 3 डी ऐप लिखना चाहते हैं तो शायद सबसे अच्छा विकल्प नहीं है। हालांकि जावा में 3 डी आसान और काफी उच्च स्तर है, इसलिए आप अन्य निम्न-स्तरीय प्रौद्योगिकियों की तुलना में विकास पर बहुत समय बचाते हैं।
संबंधित मुद्दे