【发布时间】:2010-12-13 23:57:07
【问题描述】:
我正在尝试从 Grails 应用程序中调用外部 Groovy 脚本。我有以下代码:
def initialSize = 4096
def outStream = new ByteArrayOutputStream(initialSize)
def errStream = new ByteArrayOutputStream(initialSize)
def process ="groovy -cp src/groovy/ src/groovy/externalscript.groovy ".execute()
process.consumeProcessOutput(outStream, errStream)
process.waitFor()
println 'out:\n' + outStream
println 'err:\n' + errStream
println process.exitValue()
但是,我得到以下异常:
VM java.nio.charset.IllegalCharsetNameException 初始化期间发生错误:java.nio.charset.Charset.checkName(Charset.java:284) 处 java.nio.charset.Charset.lookup2 处的“UTF-8”( Charset.java:458) 在 java.nio.charset.Charset.lookup(Charset.java:437) 在 java.nio.charset.Charset.defaultCharset(Charset.java:579) 在 sun.nio.cs.StreamEncoder.forOutputStreamWriter (StreamEncoder.java:37) 在 java.io.OutputStreamWriter.(OutputStreamWriter.java:94) 在 java.io.PrintStream.(PrintStream.java:100) 在 java.lang.System.initializeSystemClass(System.java:1092)
该脚本在 Grails 之外运行良好,我不确定编码问题来自何处。我尝试将 externalscript.groovy 保存为 UTF-8,但遇到了同样的问题。
【问题讨论】:
-
您是否从 NetBeans IDE 运行此应用程序?否则你可以从 NetBeans IDE 运行它吗。NetBeans 最新版本支持 Grails 和 Groovy
-
凯文,你需要接受一个答案。我会看看迈克尔的