2013-02-21 39 views
5

Tôi muốn xóa màn hình trong ứng dụng java của tôi, sau khi đọc nhiều câu hỏi và googling, tôi thấy đoạn code dưới đâyexec là những gì Runtime.getRuntime(). ("Miền tương đương cụ thể của cls") cho các cửa sổ 7

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

hoặc

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

nhưng mã ở trên không hoạt động trong cửa sổ 7. tôi biết các "cls" kịch bản là lĩnh vực cụ thể, không ai biết nội dung tôi nên sử dụng trong các cửa sổ 7. nó là gì sẽ thực sự hữu ích, cảm ơn bạn trước.

+0

Bạn có gặp bất kỳ lỗi nào không? – aksappy

+0

Sẽ đơn giản hơn rất nhiều khi chỉ viết các chuỗi thoát ANSI cho 'Home' và 'Clear to EOS' thành System.out. – EJP

+0

@askappy Tôi nghĩ rằng tôi nhận được, bởi vì lệnh không hoạt động. – Radan

Trả lời

1

Tôi nhận thấy bạn đang tìm kiếm một cách dễ dàng để xóa màn hình. Bạn sẽ phải sử dụng tính năng hack dòng mới hoặc sử dụng bảng điều khiển được bật ANSI. Dưới đây là một chút khó khăn hơn cửa sổ chỉ có phương pháp sử dụng JNA bạn hoặc những người khác đọc này có thể xem xét. Đây là một ví dụ hướng dẫn. Thêm lỗi kiểm tra/xử lý/nhập khẩu/bao gồm khi cần thiết. Bạn phải đã biết cách sử dụng JNA. Nếu bạn chưa quen với JNA, đây là một chương trình đầu tiên tốt để bạn thử.

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

Kể từ cls là một lệnh nội bộ (một cái gì đó cmd.exe làm bản thân thay vì gọi một chương trình thực thi), bạn có thể làm điều đó với:

cmd /c cls 

này hoạt động tốt trong môi trường Windows 7, giả sử bạn đang thực sự chạy một ứng dụng kiểu bảng điều khiển.

+0

sẽ thử điều này, nhưng có vẻ như một trong nhiều kết hợp mà tôi đã thử trước đây. – Radan

+0

Runtime.getRuntime(). Exec ("cmd/c cls"); công việc dint có IO ngoại lệ như bình thường. – Radan

+1

@Radan Bạn cần chuyển các tham số dưới dạng mảng chuỗi, hãy xem: http://stackoverflow.com/questions/3608944/adding-parameters-to-runtime-getruntime – lbalazscs

Các vấn đề liên quan