2012-04-20 15 views
26

मैं काफी समय से इस के लिए अपने बाल खींच रहा हूं। मैंने जावा में कंसोल को साफ़ करने के तरीके पर एक घंटे के लिए शोध किया है।जावा में कंसोल कैसे साफ़ करें?

सभी मैंने पाया या तो लाइनों के एक झुंड मुद्रण या क्रियान्वित इस

Runtime.getruntime.exec("cls/clear"); 

हालांकि, कुछ भी नहीं है मेरे लिए काम किया जा रहा है द्वारा हैकिंग गंदा था। जावा में कंसोल को साफ़ करने का कोई तरीका नहीं है जैसे सी (clrscr();)। क्या कोई बाहरी पुस्तकालय नहीं है जिसके द्वारा इसे हासिल किया जा सकता है।

कृपया मुझे बताएं कि अगर किसी ने कभी गंदे हैकिंग के बजाय उचित फ़ंक्शन, लाइब्रेरी इत्यादि का उपयोग करने से पहले ऐसा किया है।

+1

'जैसे सी'? मुझे लगता है कि सी में ऐसा करने का एकमात्र तरीका ncurses जैसी लाइब्रेरी का उपयोग करना है। यदि आप यही कर रहे हैं, तो यह प्रश्न जावा के साथ समान/समान परिणाम प्राप्त करने का वर्णन करता है: http://stackoverflow.com/questions/439799/whats-a-good-java-curses-like-library-for-terminal -अनुप्रयोगों। – Hassan

+0

यदि आपके पास वीटी 100 टर्मिनल है तो आप एस्केप कोड्स (एएससी [2 जे \t साफ़ स्क्रीन का उपयोग कर सकते हैं \t ईडी 2) देखें http://ascii-table.com/ansi-escape-sequences-vt-100.php अन्य टर्मिनलों के लिए अन्य भागने के कोड हो सकता है। ग्रहण कंसोल किसी भी बचने के कोड को छोड़कर नहीं है। – Andreas

+3

इसी प्रकार का प्रश्न: ** [जावा: कंसोल साफ़ करें] (http://stackoverflow.com/questions/2979383/java-clear-the-console) ** –

उत्तर

3
Runtime.getRuntime().exec("PlatformDepedentCode"); 

आपको अपने प्लेटफॉर्म के स्पष्ट कंसोल कमांड के साथ "PlatformDependentCode" को प्रतिस्थापित करने की आवश्यकता है।

exec() विधि आपके द्वारा कंसोल में दर्ज की गई कमांड के रूप में दर्ज की गई कमांड को निष्पादित करती है।

विंडोज़ में आप इसे Runtime.getRuntime().exec("cls"); के रूप में लिखेंगे।

+10

'रनटाइम.getRuntime()। Exec ("cls") ; विंडोज़ पर काम नहीं करता है (हर बार)। – Lion

0

आपको कंसोल को साफ़ करने के निर्देश देने की आवश्यकता है।

धारावाहिक टर्मिनलों के लिए यह आमतौर पर तथाकथित "बचने के दृश्य" के माध्यम से किया जाता था, जहां विशेष रूप से vt100 सेट बहुत सामान्य रूप से समर्थित होता है (और इसके करीबी एएनएसआई-चचेरे भाई)।

विंडोज पारंपरिक रूप से इस तरह के अनुक्रमों को "आउट ऑफ़ द बॉक्स" का समर्थन नहीं करता है लेकिन इन चीजों को करने के लिए एपीआई-कॉल पर निर्भर करता है। विंडोज़ के डॉस-आधारित संस्करणों के लिए, हालांकि, इस तरह के समर्थन प्रदान करने के लिए ANSI.SYS ड्राइवर स्थापित किया जा सकता है।

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

16

अपने टर्मिनल ANSI escape codes का समर्थन करता है, तो इस स्क्रीन को साफ करता है और पहली पंक्ति के लिए कर्सर ले जाता है, पहले कॉलम:

System.out.print("\033[H\033[2J"); 
System.out.flush(); 

यह लगभग सभी यूनिक्स टर्मिनल और टर्मिनल emulators पर काम करता है। विंडोज cmd.exe एएनएसआई एस्केप कोड का अर्थ नहीं है।

+0

ग्रहण कंसोल पर काम नहीं करता है ubuntu – sziraqui

+0

ऐसा इसलिए है क्योंकि ग्रहण कंसोल एएनएसआई से बचने के कोड का समर्थन नहीं करता है। – IMustBeSomeone

1

आप लूप प्रिंटिंग "\ b" के लिए सरल का उपयोग करके आसानी से clrscr() को कार्यान्वित कर सकते हैं।

5

जब जावा प्रक्रिया एक कंसोल से जुड़ा है, यह सांत्वना साफ हो जाएगा अब इस कोड

import java.io.IOException; 

public class CLS { 
    public static void main(String... arg) throws IOException, InterruptedException { 
     new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor(); 
    } 
} 

की कोशिश करो।

-1

यदि आप विंडोज़ का उपयोग कर रहे हैं और प्रोग्राम चलाने से पहले स्क्रीन को साफ़ करने में रुचि रखते हैं, तो आप फाइल को इसे .bat फ़ाइल से संकलित कर सकते हैं।उदाहरण के लिए :


cls

जावा के रूप में "आदि" .bat "क्या कभी compiles क्लास का नाम है"


सहेजें और फिर में यह फोन करके चल कमांड प्रॉम्प्ट या फ़ाइल को

+1

यदि आपका दृष्टिकोण उपयोग किया जाता है तो यह प्रोग्राम लॉन्च करने से पहले सबकुछ साफ़ कर देता है लेकिन सवाल जावा प्रोग्राम चलने पर रनटाइम पर स्क्रीन साफ़ करने के बारे में है। –

1

निम्न कोड का उपयोग करें:


System.out.println("\f"); 

'\ च' एक एस्केप अनुक्रम जो formfeed का प्रतिनिधित्व करता है। कंसोल को साफ़ करने के लिए मैंने अपनी परियोजनाओं में यही उपयोग किया है। मुझे लगता है कि यह अन्य कोड की तुलना में आसान है।