2013-02-21 44 views
5

, ben aşağıdaki kodu buldum pencereler için ("cls'ye etki alanı belirli eşdeğer")Runtime.getRuntime() budur. Exec 7 Ben çok soru okuma ve googling sonra, benim java uygulamasında ekranı temizlemek istediğiniz

runtime.getruntime().exec("cls") 

veya

Runtime.getRuntime().exec("cmd /c cls"); 

ancak yukarıdaki kod herkes ben pencerelerde 7. bunu kullanmanız gereken metnin ne olduğu biliyor ben, "cls" komut dosyası alanı özeldir farkındayım pencereler 7. çalışmıyor gerçekten yararlı olacak, şimdiden teşekkür ederim.

+0

Hata yaptınız mı? – aksappy

+0

ANSI çıkış dizilerini 'Ev' ve 'EOS'tan Temizle' için System.out'a yazmak çok daha kolay olurdu. – EJP

+0

@askappy Sanırım aldım, çünkü komut çalışmıyor. – Radan

cevap

1

Ekranı temizlemenin kolay bir yolunu aradığınızı anlıyorum. Newline hack veya ANSI etkinleştirilmiş bir konsol kullanmanız gerekecektir. Burada, JNA'yı veya okuduğunu okuyan diğer kişileri kullanarak, sadece biraz daha zor olan bir penceredir. Bu bir öğretim örneğidir. Hata denetimi/işleme/ithalatı ekleyin/gerektiği gibi ekleyin. JNA'yı nasıl kullanacağınızı bilmelisiniz. Eğer JNA'da yeniyseniz, bu sizin denemeniz için iyi bir ilk programdır.

//------------------------------------------ 
// Java2Win.class 
//------------------------------------------ 
public interface Java2Win extends Library { 
    Java2Win java2Win = (Java2Win)Native.loadLibrary("Java2Win64",Java2Win.class); 
    void cls(); 
} 
//------------------------------------------ 

//------------------------------------------ 
// Java2Win.c (Java2Win.dll & Java2Win64.dll) 
//------------------------------------------ 
JNIEXPORT void cls() { 
    system("cls"); 
} 
//------------------------------------------ 

//------------------------------------------ 
// Test 
//------------------------------------------ 
public static void main(final String args[]) throws Exception { 
    final File file = new File("rootToDLL", "Java2Win64.dll"); 
    LibraryLoader.loadLibrary(file); 
    System.out.println("-----some output"); 
    System.out.println("-----some output"); 
    System.out.println("-----some output"); 
    Thread.sleep(2000); 
    Java2Win.java2Win.cls(); 
    System.out.println("-----cleared"); 
} 
//------------------------------------------ 
2

cls bir iç komutu (yürütülebilir bir program çağırma daha kendisini oldukça yapar cmd.exe şey) olduğu için, bunu yapabilirsiniz:

cmd /c cls 

Bu aslında bir yayınladığınız varsayarak, Windows 7 altında çalışıyor konsol tipi uygulama.

+0

bunu deneyeceğim ama daha önce denediğim birçok kombinasyondan birine benziyor. – Radan

+0

Runtime.getRuntime(). Exec ("cmd/c cls"); Dint çalışma her zamanki gibi bir istisna var. – Radan

+1

@Radan Parametreleri bir dizi dizisi olarak iletmeniz gerekiyor, bakınız: http://stackoverflow.com/questions/3608944/adding-parameters-to-runtime-getruntime – lbalazscs