2012-10-22 7 views
7

विकल्प में संभव हो सकता है के रूप में एक एप्लिकेशन Oracle की JDK 7 जावा प्राथमिकताएं पृष्ठ में मौजूद के रूप में यह सेब में किया था here कहा गया हैमैं ओएसएक्स डॉक आइकन के साथ एक जेएनएलपी कैसे बंडल कर सकता हूं; इस अब एक JNLP पैकेज जावा वरीयताओं

ओएस एक्स प्रकट नहीं होता दिखाई देता है जावा वेब स्टार्ट के साथ डेस्कटॉप एकीकरण उपयोगकर्ता को किसी भी जावा वेब स्टार्ट एप्लिकेशन से स्थानीय एप्लिकेशन बंडल बनाने देता है। शॉर्टकट जावा प्राथमिकता में निर्माण सेटिंग नियंत्रित करता है कि क्या उपयोगकर्ता जावा वेब स्टार्ट एप्लिकेशन खोलते समय एप्लिकेशन बंडल बनाने के लिए संकेत दिया गया है या नहीं। बंडल जावा वेब प्रारंभ अनुप्रयोगों देशी आवेदन बंडलों की लाभ, जो में वर्णित के सभी "ओएस एक्स आवेदन बंडल।"

इस हल करने के लिए मैं एक .app जो चलाता है बनाने के लिए स्वचालक उपयोग कर रहा हूँ एक शेल स्क्रिप्ट जो जेएनएलपी निष्पादित करती है। यह मुझे ऐप आइकन का उपयोग करने की अनुमति देता है, लेकिन डॉक आइकन को कॉन्फ़िगर करने के मेरे सभी प्रयास विफल हो गए हैं।

मैं iconutil का उपयोग कर और कहा कि Resources फ़ोल्डर में, तो .icns फ़ाइल Contents/Info.plist में क्षेत्र "Icon File" के तहत निर्दिष्ट करने लेकिन मैं अभी भी कटघरे में जावा कॉफी कप आइकन जब चलाने के एक .icns फ़ाइल बनाने की कोशिश की है एप्लिकेशन।

एक और चीज जो मैंने कोशिश की है -Xdock:icon=icon.jpgjavaws पर तर्क दे रहा है लेकिन यह केवल नियमित जावा कार्यक्रमों के साथ काम करता है।

उत्तर

2

मुझे अपने मुद्दे का समाधान मिला। .app फ़ाइल में आइकन को बंडल करने के बजाय आप इसे सीधे jnlp में संदर्भित कर सकते हैं। The JNLP Developer's guideicon element

आइकन तत्व का एक विवरण शामिल हैं: या तो GIF या JPEG प्रारूप में एक छवि फ़ाइल के लिए एक HTTP URL शामिल हैं। लॉक के दौरान एप्लिकेशन

लॉन्च के दौरान आइकन का उपयोग किया जाता है जब जावा वेब स्टार्ट उपयोगकर्ता को एप्लिकेशन प्रस्तुत करता है; आवेदन प्रबंधक में; डेस्कटॉप शॉर्टकट में। एक 64x64 आइकन डाउनलोड के दौरान दिखाया गया है; एप्लिकेशन मैनेजर में और डेस्कटॉप में शॉर्टकट्स 32x32 आइकन का उपयोग किया जाता है। जावा वेब स्टार्ट स्वचालित रूप से उपयुक्त आकार के लिए का आकार बदलता है।

यह स्पष्ट रूप से ओएसएक्स डॉक का उल्लेख नहीं करता है, लेकिन एक त्वरित परीक्षण से पता चला कि यह वास्तव में वहां आइकन भी लगाता है।

+3

जेडब्ल्यूएस फंकी है। :) –

1

मैं एक अलग दृष्टिकोण की सिफारिश करता हूं, जो आपको अन्य तैनाती विधियों के साथ-साथ (केवल जेएनएलपी) की मदद करेगा।

आप ओएसएक्स विशिष्ट कोड जोड़ने के लिए अपने कोड में प्रतिबिंब का उपयोग कर सकते हैं। मैंने विंडोज़ पर अपना एप्लीकेशन संकलित किया है और मैक के लिए डॉक आइकन जोड़ा है।

javax.swing.ImageIcon icon = ... 
Class c = Class.forName("com.apple.eawt.Application"); 
Method m = c.getMethod("getApplication"); 
Object applicationInstance = m.invoke(null); 
m = applicationInstance.getClass().getMethod("setDockIconImage", javax.swing.ImageIcon.class); 
m.invoke(applicationInstance,icon); 
संबंधित मुद्दे