2013-02-21 11 views
5

voglio chiarire schermo nella mia applicazione java, dopo aver letto molte domande e googling, ho trovato il codice qui sottociò che è Runtime.getRuntime(). Exec ("equivalente dominio specifico di cls") per Windows 7

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

o

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

ma il codice di cui sopra non funziona in Windows 7. sono consapevole lo script "cls" è di dominio specifico, qualcuno sa che cosa è il testo dovrei usare in Windows 7. sarà davvero utile, grazie in anticipo.

+0

Si sono verificati errori? – aksappy

+0

Sarebbe molto più semplice scrivere le sequenze di escape ANSI per "Home" e "Clear to EOS" su System.out. – EJP

+0

@askappy Penso di averlo capito, perché il comando non funziona. – Radan

risposta

1

Mi rendo conto che stai cercando un modo semplice per cancellare lo schermo. Dovrai utilizzare il trucco di nuova riga o utilizzare una console abilitata ANSI. Qui è un metodo un po 'più difficile di Windows usando JNA voi o altri che leggendo questo può prendere in considerazione. Questo è un esempio istruttivo. Aggiungi controllo degli errori/gestione/importazioni/include se necessario. Devi già sapere come usare JNA. Se sei nuovo a JNA, questo è un buon primo programma da provare.

//------------------------------------------ 
// 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

Dal cls è un comando interno (qualcosa cmd.exe si fa piuttosto che chiamare un programma eseguibile), si può fare con:

cmd /c cls 

Questo funziona bene con Windows 7, supponendo che si sta effettivamente in esecuzione di un applicazione di tipo console.

+0

ci proverò, ma sembra una delle tante combinazioni che ho provato prima. – Radan

+0

Runtime.getRuntime(). Exec ("cmd/c cls"); il lavoro di dint ha avuto l'eccezione IO come al solito. – Radan

+1

@Radan È necessario passare i parametri come array di stringhe, vedere questo: http://stackoverflow.com/questions/3608944/adding-parameters-to-runtime-getruntime – lbalazscs

Problemi correlati