2011-06-04 7 views
5

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

एक बस खोल और हिट वापसी में यह लिख सकते हैं:

Map<String, String> env = System.getenv(); 
for (String envName : env.keySet()) { 
    System.out.format("%s=%s%n", envName, env.get(envName)); 
} 

यह bsh.Interpreter क्या कर सकते हैं। लेकिन मुझे इसका उपयोग करना बहुत मुश्किल लगता है। मैं शेल लाइन पर कर्सर के साथ पीछे/बाएं नहीं जा सकता ...^[[डी^[[डी^[[डी .... मैं केवल अंतिम पात्रों को हटा सकता हूं। सुनिश्चित नहीं हैं कि अगर यह ओएस विशिष्ट (मैं लिनक्स पर हूँ) है लेकिन यह बहुत असुविधाजनक है ...

मैं जावा भाषा, नहीं JRuby, Jython या ग्रूवी

में कुछ मतलब

उत्तर

1

जावा पाठ कंसोल के साथ बहुत ही बुनियादी है लाइन बफरिंग। यह जावा की एक विशेषता है। आप जेएनआई का उपयोग करके इनपुट बदल सकते हैं, हालांकि जीयूआई का उत्पादन करना आसान है, जहां आप इनपुट पर व्यवहार करना चाहते हैं, इस पर पूर्ण नियंत्रण है।

1

आप बीन्सहेल ग्राफिकल डेस्कटॉप का उपयोग करने का प्रयास कर सकते हैं जो एक खोल की तरह व्यवहार करता है।

Start it with: rlwrap तहत

java bsh.Console // runs the graphical desktop 
0

भागो bsh.Interpreter - http://utopia.knoware.nl/~hlub/rlwrap/

rlwrap एक महान कार्यक्रम है कि किसी भी कमांड लाइन कार्यक्रम के लिए ReadLine नियंत्रण (इतिहास याद, लाइन संपादन, आदि) कहते है।