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