java - 使用 Java 11 在 groovyconsole 中执行脚本会生成缺少 JAXB 依赖项异常

标签 java groovy groovy-console

我见过其他关于此问题的问题,但绝大多数答案都指定设置依赖项 POM.xml 文件,即用于运行 groovy 脚本,例如智能。 我只是想让 groovyconsole (在 Windows 中)执行一行打印命令,但尽管尝试了设置 JAVA_OPTS 的各种排列,但没有任何效果。 当我设置 JAVA_OPTS 时,groovyconsole 完全无法启动。

groovyconsole

我的java版本是jdk 11,我的groovy版本是3.0。我认为所有这些都应该在 groovy 2.6 或类似版本中得到解决。

C:\Users\J\Documents\Development>java -version
java version "11.0.5" 2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)

C:\Users\J\Documents\Development>javac -version
javac 11.0.5

C:\Users\J\Documents\Development>echo %JAVA_HOME%
C:\Program Files\Java\jdk-11.0.5    

C:\Users\J\Documents\Development>groovy --version
Groovy Version: 3.0.0-beta-3 JVM: 11.0.5 Vendor: Oracle Corporation OS: Windows 10

如果您向我推荐另一个问题,请确保那里有一个真正解决这个特定问题的答案,因为尽管我仔细研究了它们,但我找不到仅使用 Java 11 运行 groovyconsole 的答案。我重复这个问题涉及单独运行 groovyconsole,而不是 intellij 中的任何 groovy 东西。

我尝试在命令行上设置JAVA_OPTS(例如set JAVA_OPTS=--add-modules java.xml.bind);我尝试在调用 groovyconsole 时提供 JAVA_OPTS(例如 groovyconsole -DJAVA_OPTS=--add-modules java.xml.bind )。 当我这样做时,groovyconsole 根本无法启动。或者也许它确实启动了,但在我什至可以看到窗口启动之前就终止了。

我也尝试过对 _JAVA_OPTS 进行相同的操作,但这没有什么区别;就好像启动 groovyconsole 时甚至没有使用/读取它一样。

我现在已经在这个问题上花了很多时间了,这确实很荒谬,所以是时候寻求帮助了。

编辑我也刚刚尝试了以下方法,这两种方法都“允许”groovyconsole 启动,但都没有解决问题

C:\Users\J\Documents\Development>groovyconsole -D"JAVA_OPTS=--add-modules ALL-SYSTEM"
C:\Users\J\Documents\Development>groovyconsole -D"JAVA_OPTS=--add-modules java.xml.bind"

编辑我也刚刚尝试了以下操作,它们都阻止控制台启动:

C:\Users\J\Documents\Development>set JAVA_OPTS="--add-modules java.xml.bind"
C:\Users\J\Documents\Development>set JAVA_OPTS="--add-modules ALL-SYSTEM"

最佳答案

Groovy JIRA 中存在关于此的错误,但已关闭 https://issues.apache.org/jira/browse/GROOVY-9305我发现如果我将 groovy-jaxb.jar 文件移出 lib 目录,控制台就可以工作。

但是,我注意到字体已更改(从 2.5.7 到 2.5.8)为看起来更卡顿的固定宽度字体。这让我怀疑还有什么不对劲的地方。我经常使用 groovyconsole,所以我有点紧张......

编辑 我发现我在 %HOME%/.groovy 中有一个 postInit.bat 文件。这个文件有一行

SET JAVA_OPTS=-Xmx1g -Dgroovy.console.output.limit=200000

我必须将其更改为

SET JAVA_OPTS=%JAVA_OPTS% -Xmx1g -Dgroovy.console.output.limit=200000

因为 %GROOVY_HOME%/bin 中的 startGroovy.bat 文件添加了属性 -Dgroovy.jaxb=jaxb。我之前版本的文件会删除 Groovy 设置的 JAVA_OPTS

关于java - 使用 Java 11 在 groovyconsole 中执行脚本会生成缺少 JAXB 依赖项异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680117/

相关文章:

android - Android依赖关系无法在Groovy项目中解决

grails - IntelliJ IDEA 13.1上的Groovy Grape配置

grails - "grails console"和 "grails"之间的差异,然后是 "console"

groovy - 在运行时获取 groovy 源文件的路径

java - 我不想从 axboot 记录 jpa 查询

java - SAP Hybris - Tomcat 忽略内存设置

Groovy HTTPBuilder : Getting the entity content from a GZIPed Chunked response

java - 语音语音合成器中的女性声音输出

java - 带有匿名线程的 Reactor Scheduler

android - 将监听器转换为 groovy 中的闭包