首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Java 11在groovy控制台中执行脚本会生成缺少JAXB依赖项异常

使用Java 11在groovy控制台中执行脚本会生成缺少JAXB依赖项异常
EN

Stack Overflow用户
提问于 2019-11-03 12:22:01
回答 1查看 1.1K关注 0票数 1

我在这方面看到了其他问题,但绝大多数答案都指定设置依赖项POM.xml文件,例如在Intellij中运行groovy脚本。我只是想让groovy控制台(在windows中)执行一行打印命令,但是尽管尝试了设置JAVA_OPTS的各种排列,但没有任何东西工作。当我设置JAVA_OPTS时,groovy控制台完全无法启动。

我的java版本是jdk 11,我的groovy版本是3.0。我以为这一切都应该在Groovy2.6左右解决了。

代码语言:javascript
运行
复制
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的答案。我重复这个问题,仅涉及运行groovy控制台,而不是intellij中的任何groovy内容。

我尝试在命令行上设置JAVA_OPTS (例如set JAVA_OPTS=--add-modules java.xml.bind);在调用groovy控制台(例如groovyconsole -DJAVA_OPTS=--add-modules java.xml.bind)时尝试提供JAVA_OPTS。当我这样做的时候,groovy控制台就不能启动了。或者它确实启动了,但在我看到窗口启动之前就终止了。

我在_JAVA_OPTS中也尝试过同样的方法,但这并没有什么区别;就好像在启动groovy控制台时甚至没有使用/读取。

我现在在这个问题上花了好几个小时,实在是太荒谬了,所以现在是寻求帮助的时候了。

编辑--我刚刚尝试了以下两种方法,这两种方法都允许Groovy控制台启动,但这两种方法都没有解决问题

代码语言:javascript
运行
复制
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"

编辑--我刚刚尝试了以下几种方法,它们都完全阻止了控制台的启动:

代码语言:javascript
运行
复制
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"
EN

回答 1

Stack Overflow用户

发布于 2019-11-26 02:38:24

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

但是,我注意到字体已经改变了(从2.5.7到2.5.8),变成了一种看起来更简陋的固定宽度字体。这让我怀疑还是有什么不对劲。我经常用控制台所以我有点紧张..。

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

代码语言:javascript
运行
复制
SET JAVA_OPTS=-Xmx1g -Dgroovy.console.output.limit=200000

我不得不把它改成

代码语言:javascript
运行
复制
SET JAVA_OPTS=%JAVA_OPTS% -Xmx1g -Dgroovy.console.output.limit=200000

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58680117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档