Tôi tự hỏi nếu có cách nào tôi có thể thay đổi đầu ra mặc định (System.out) cho kịch bản lệnh groovy mà tôi đang thực thi từ mã Java của mình.Làm cách nào để chuyển hướng đầu ra từ tập lệnh Groovy?
Đây là mã Java:
public void exec(File file, OutputStream output) throws Exception {
GroovyShell shell = new GroovyShell();
shell.evaluate(file);
}
Và mẫu kịch bản hấp dẫn:
def name='World'
println "Hello $name!"
Hiện nay việc thực hiện các phương pháp, đánh giá các kịch bản mà viết "Hello World!" vào bảng điều khiển (System.out). Làm cách nào để chuyển hướng đầu ra tới OutputStream được truyền dưới dạng tham số?
Điều đó có hiệu quả, nhưng tôi muốn chuyển hướng * bất kỳ * đầu ra nào được ghi vào đầu ra tiêu chuẩn. Đặc biệt là các hàm dựng sẵn như println(). –
Bạn đã * về * đúng. Giải pháp là bọc đầu ra vào java.io.PrintStream và chuyển thành thuộc tính "out" cho shell! –
yay !, huy hiệu đồng đầu tiên của tôi! Chúc mừng nó hoạt động! Làm thế nào bạn quấn đầu ra? – jjchiw