Я пытаюсь вызвать внешний скрипт Groovy из приложения Grails. У меня есть следующий код:
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()
Однако я получаю следующее исключение:
Произошла ошибка при инициализации виртуальной машины java.nio.charset.IllegalCharsetNameException: «UTF-8» в java.nio.charset.Charset.checkName (Charset.java:284) в java.nio.charset.Charset.lookup2 ( 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, но столкнулся с той же проблемой.