首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从grails应用程序启动grails命令

从grails应用程序启动grails命令
EN

Stack Overflow用户
提问于 2014-02-17 19:21:32
回答 1查看 338关注 0票数 0

我试图从一个grails应用程序运行一个类似于"grails help“的Grails命令,但我所做的所有尝试都以"Error: main not find or load main class org.codehaus.groovy.grails.cli.support.GrailsStarter".”结束

基本上,我试过了

代码语言:javascript
复制
def p1 = "grails help".execute()
p1.waitFor()

println "return code: ${ p1.exitValue()}"
println "stderr: ${p1.err.text}"
println "stdout: ${p1.in.text}"

另外:

代码语言:javascript
复制
Runtime runtime = Runtime.getRuntime()
Process process = runtime.exec("grails help")
process.waitFor()

println "return code: ${ process.exitValue()}"
println "stderr: ${process.err.text}"
println "stdout: ${process.in.text}"

最后:

代码语言:javascript
复制
def sout = new StringBuffer()
def serr = new StringBuffer()
final processBuilder = new ProcessBuilder()
processBuilder.directory(new File("/myFolder"))
processBuilder.command(["grails","help"])
println processBuilder.directory()
Process proc = processBuilder.start()
proc.consumeProcessOutput(sout, serr)

def status = proc.waitFor()
println 'sout: ' + sout
println 'serr: ' + serr

当然,"grails help“命令不是我想要执行的命令,但是修复这个命令就可以修复我需要运行的命令。

还有其他想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-17 21:47:01

如果我使用grails 2.3.5 (grails create-app script-test)创建一个新应用程序,然后声明一个控制器(grails create-controller test.Run)并更改它,使其如下所示:

代码语言:javascript
复制
package test

class RunController {
    def index() {
        def t = [ 'grails', 'help' ].execute().text
        render "<pre>$t</pre>"
    }
}

您将遇到的问题是,这在生产环境中将不起作用,因为您可能要部署一个war文件,因此grails不会知道您在哪里,或者您正在做什么(如果确实在服务器上安装了grails )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21827704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档