2012-03-09 25 views
5

Tôi không biết nếu có thể, nhưng tôi muốn xem phản hồi của tệp .bat của tôi trong Java.Nhận phản hồi của dòng lệnh trong Java

Hoặc một boolean của một cái gì đó mà tôi có thể thấy rằng mọi thứ đang diễn ra tốt đẹp! Và nếu có một số lỗi mà tôi có thể thấy các lỗi trong Java.

Cảm ơn

+0

Câu hỏi của bạn là khá rõ ràng. Bạn đang nói về việc chỉ in đến bảng điều khiển từ chương trình Java của bạn? (sử dụng System.out.println()). Tôi không chắc chắn nơi các tập tin .bat đi vào nó. –

+0

Xin lỗi, tôi đang chạy tệp .bat trong Dòng lệnh của Windows. Nhưng tôi đang xây dựng một chương trình cho người dùng, Vì vậy, đó không phải là cách tốt nhất để chạy tệp dơi chỉ và người dùng không nhận được bất kỳ phản hồi nào. Tôi hy vọng nó bây giờ rõ ràng hơn! – Gynnad

Trả lời

2

Hãy nhìn vào những mẫu mã để thực hiện các lệnh shell qua java: Execute an external program

Các ví dụ mã trên không sử dụng ProcessBuilder và do đó không giới hạn Java 1.5 trở lên

+0

Cảm ơn, đã có rất nhiều mã hữu ích cho tôi! – Gynnad

5

Bạn cần phải chạy nó bằng cách sử dụng ProcessBuilder (miễn là bạn đang chạy java 1.5 trở lên, nếu không kiểm tra câu trả lời của Alex)

Nếu bạn thực hiện:

Process process = new ProcessBuilder("mybat.bat").command(); 

Với số Process bạn có thể gọi

InputStream errorStream = process.getErrorStream(); 

Bạn sẽ nắm bắt đầu ra từ con dơi để stderr.

Bạn cũng có thể sử dụng getOutputStream() để xử lý sdtout hoặc kiểm tra mã trả lại bằng exitCode().

+0

Phương thức ProcessBuilder yêu cầu một String Array, nếu tôi sử dụng tập tin bat ở đó nó sẽ không hoạt động. – Gynnad

+0

@Gynnad Bạn có ý nghĩa gì khi sử dụng tệp dơi? Tôi đang đi qua một chuỗi mô tả các tập tin bat (hoặc đường dẫn của tập tin bat hoặc nếu nó là trên đường dẫn hệ thống sau đó chỉ là tên tập tin bat) Nó được mô tả trong tài liệu hướng dẫn cho ProcessBuilder (liên kết được cung cấp trong câu trả lời). Nếu bạn đang sử dụng java 1.5 hoặc cao hơn, bạn nên sử dụng ProcessBuilder. – zode64

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