我的grails应用程序有一个我开发的外部java库。我希望我的grails应用程序能够显示我的java库system.out语句(控制台输出)。我该怎么做呢?
我宁愿不必把它写到文件中然后用grails读取它。必须有更好的方法来做到这一点。
**我希望grails将这些显示在文本框中(在浏览器中运行时(因此用户可以看到))
Afer尝试了几种我自己的方式,我必须以这种方式解决,我将在这里发布。感谢@Shaunak的帮助和理解。
**我是如何解决的。
在我的java库中,我创建了一个全局类,所有System.out都将写入
writeSouts(String sout){
//store here in a global string and keep appending to it as needs be
}
然后在grails中不断调用java库方法。并使用Ajax将其写入浏览器窗口。
希望这可以帮助将来遇到同样问题的人。
此外,它不是用于测试,而是用于我的Web应用程序的一个组成部分,因此Web应用程序的用户可以是Java库在后台进行的。
答案 0 :(得分:1)
如果没有关于如何调用Java库的详细信息,我将在此假设它只是一些写入控制台的代码,并且您希望从Grails控制器内部调用和读取它并将其发送回HTML。这就是我的建议。不要将Java代码包含为库,而是从中创建命令行实用程序。
因此,您的java程序将被调用以进行测试,
java MyLib -arg1 -arg2
这应该在命令行上输出这样的内容:
> This is my nice output
现在要从grails调用和读取它,你可以使用Groovy的External Process Management 并执行类似这样的操作来调用和读取输出:
def process = "java MyLib -arg1 -arg2".execute()
def response = "Found text ${process.text}"
您的response
var现在应该有值
Found Text This is my nice output
您现在可以使用它来执行grails控制器中的任何操作,例如将其发送回HTML ..