Tôi đang cố gắng nhúng groovy vào một ứng dụng Java lớn.GroovyShell: thực thi được nhúng
Ứng dụng Java sẽ tải một số tập lệnh Groovy tiện ích khi khởi động.
Ứng dụng sau đó sẽ chạy các tập lệnh khác nhiều lần. Ngoài ra còn có một nhu cầu để nhập một số mã tại một GUI và thực hiện nó theo yêu cầu của người dùng.
Vấn đề tôi đang phải đối mặt với là thế này:
Tôi tải các tập lệnh khởi động như thế này:
GroovyShell gShell = new GroovyShell();
gShell.evaluate(new FileReader("scripts/autoload.groovy"));
Giả autoload.groovy tôi bao gồm:
def prnt(m) {
println("From Groovy: " + m);
}
này hoạt động tốt . Nhưng khi tôi muốn chạy một lệnh người dùng sử dụng:
gShell.evaluate("prnt 66");
tôi nhận được lỗi: groovy.lang.MissingMethodException: No signature of method: Script2.prnt() is applicable for argument types: (java.lang.Integer) values: [66]
Làm thế nào có thể truy cập sử dụng kịch bản của tôi các phương pháp đã được nạp?
Lưu ý: Tôi cũng đã thử "autoload.prnt 88" và vẫn gặp lỗi.