2011-08-05 20 views
7

मैं एक कंसोल आधारित जावा एप्लिकेशन लिख रहा हूं जिसमें उपयोगकर्ता को एक कस्टम कमांड प्रॉम्प्ट प्रस्तुत किया जाएगा जहां वह कुछ कमांड टाइप कर सकती है, मैं ऐप के लिए एक ऑटो पूर्ण सुविधा को कार्यान्वित करना चाहता हूं जिसके द्वारा टाइपिंग करते समय आदेश, यदि उपयोगकर्ता टैब को दबाता है तो कमांड पूरा होना चाहिए। कार्यक्षमता लिनक्स कमांड प्रॉम्प्ट में स्वतः पूर्ण होने के समान है।कंसोल ऐप में टैब आधारित स्वत: पूर्ण

जावा कंसोल ऐप में हमें टैब पर नियंत्रण नहीं मिलता है और डिफ़ॉल्ट रूप से 8 स्पेस जोड़कर एक टैब दबाया जाएगा। मुझे कुछ चाल की ज़रूरत है जिसका उपयोग टीएबी प्रतिपादन के लिए नहीं जाता है और मेरा ऐप स्वचालित रूप से टैब को प्रतिस्थापित कर सकता है।

अग्रिम धन्यवाद।

+0

आरएचक्यू परियोजना की जांच करें और यह सीएलआई है। यह स्वतः पूर्ण का एक अच्छा प्रभाव है। http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=tree;f=modules/enterprise/remoting/cli;h=ba5c185774538696525b6c05c3777964f5dd606c;hb=HEAD –

+0

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

उत्तर

7

आप Java-Readline या jline2 जैसी लाइब्रेरी का उपयोग करने का प्रयास कर सकते हैं।

+0

सक्रिय विकास के तहत केवल एक ही [jline3] (https://github.com/jline/jline3) है। –

0

picocli जावा कमांड लाइन पार्सिंग लाइब्रेरी ने हाल ही में स्वत: पूर्ण कार्यक्षमता को जोड़ा।

आप यह भी पसंद कर सकते हैं कि यह आपको उपयोग सहायता संदेश में एएनएसआई रंगों और शैलियों का उपयोग करने में सक्षम बनाता है।

enter image description here

अस्वीकरण: मैं लेखक और इसलिए पक्षपाती हूँ।

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