2012-05-22 14 views
8

के साथ काम करना बंद कर दिया है अब तक मैंने अपने ऐप्पल मैकबुक पर एप्लिकेशन नाम (शीर्ष "सिस्टम" मेनू बार में) सेट करने के लिए निम्न कोड का उपयोग किया है। (असल में, मुझे लगता है कि मैंने इसे स्टैक ओवरफ्लो से कॉपी किया है।)जावा/ओएस एक्स शेर: एप्लिकेशन नाम सेट करना जेडीके 1.7

असल में, एक अलग ऐपलाउचर क्लास है जो ऐप के लिए एक नया रननेबल बनाने से पहले एप्लिकेशन नाम सेट करने के लिए System.setProperty() का उपयोग करता है।

ठीक काम किया।

हालांकि, चूंकि मैंने जेडीके 1.7 का उपयोग करके डाउनलोड किया और शुरू किया, तो समाधान काम करना बंद कर दिया - मुझे मेनू में ऐप नाम के बजाय कक्षा का नाम मिल रहा है, जैसा कि मैंने समाधान पाया था। मैंने इसे गुगल करने की कोशिश की, लेकिन इसका कोई फायदा नहीं हुआ।

public class AppLauncher { 
public static void main(String[] args) { 

    System.setProperty("apple.laf.useScreenMenuBar", "true"); 
    System.setProperty("com.apple.mrj.application.apple.menu.about.name", 
       "My Application"); 
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      new MainWindow(); 
     } 
    }); 
} 
} 

सुझाव के लिए धन्यवाद:

यहाँ मृत कोड कि JDK 1.6 के तहत काम करता था, प्रासंगिक भागों को कम किया है!

ईटीए: जावा-डैपल.लाफ.यूज के साथ आक्रमण करनास्क्रीनमेनूबार = सच अभी भी काम करता है। Info.plist में संपत्ति को Pu8tting काम कर सकता है, लेकिन मैंने अभी तक कोशिश नहीं की है।

+0

किसी भी भाग्य '-D' या साथ' Info.plist' से पता चला [यहां] (http://stackoverflow.com/a/8956715/230513)? यह OpenJDK में असमर्थित हो सकता है। – trashgod

+0

हाय, हाँ-डी चाल चल रहा है। मैं अपने सिर के पीछे Info.plist रखूंगा और धन्यवाद, एक बार जब मैं वहां हूं, धन्यवाद। –

+0

@trashgod: आपको शायद इसे एक उत्तर के रूप में जोड़ना चाहिए ताकि प्रश्न "अनुत्तरित" सूची छोड़ सके। – wchargin

उत्तर

2

ऐसा प्रतीत होता है कि -D का उपयोग कर संपत्ति को सेट करने से समस्या हल हो जाती है।

java -Dapple.laf.useScreenMenuBar=true … 

अन्य दृष्टिकोण इस संबंधित answer में वर्णित हैं।

1

मुझे जानकारी के लिए Info.plist या -D दृष्टिकोण नहीं मिल सका (मैं एक जेआरबी ऐप वितरित करने पर काम कर रहा हूं, जिसके साथ कुछ करने के लिए कुछ हो सकता है), लेकिन मेरे लिए उल्लेख किया गया है कि -Xdock:name पैरामीटर "मेनू बार के साथ अधिक tinkering" अनुभाग के तहत this article महान काम करने लग रहा था।

उदाहरण: -Xdock:name="My Application"

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