1

我已经看到了关于此的其他问题,但绝大多数答案指定设置依赖项 POM.xml 文件,即用于在例如 Intellij 中运行 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(例如groovyconsole -DJAVA_OPTS=--add-modules java.xml.bind)时提供 JAVA_OPTS。当我这样做时,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"
4

1 回答 1

0

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

但是,我注意到字体已经更改(从 2.5.7 到 2.5.8),变成了看起来更笨拙的固定宽度字体。这让我怀疑有些事情仍然不对劲。我经常使用 groovyconsole,所以我有点紧张......

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

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

我不得不将其更改为

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

因为startGroovy.bat文件中%GROOVY_HOME%/bin添加了属性-Dgroovy.jaxb=jaxb。我以前版本的文件是JAVA_OPTS用 Groovy 擦除集合。

于 2019-11-26T02:38:24.683 回答