Java 将clojure编译为jar文件后,正则表达式中出现Stackoverflow错误
我用Clojure编写了一个脚本,使用babashka进行一些文本处理。如果我使用Java 将clojure编译为jar文件后,正则表达式中出现Stackoverflow错误,java,regex,clojure,babashka,Java,Regex,Clojure,Babashka,我用Clojure编写了一个脚本,使用babashka进行一些文本处理。如果我使用bb命令运行它,它工作得很好。但是当我将它编译成.jar文件并使用java命令运行时,我得到了java.lang.StackOverflowerError Exception in thread "main" java.lang.StackOverflowError at java.util.regex.Pattern$CharProperty.match(Pattern.java:37
bb
命令运行它,它工作得很好。但是当我将它编译成.jar
文件并使用java
命令运行时,我得到了java.lang.StackOverflowerError
Exception in thread "main" java.lang.StackOverflowError
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3789)
at java.util.regex.Pattern$Branch.match(Pattern.java:4618)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4672)
.....
我能够确定问题是由这个\s(?=([^\“]\\“[^\“]*\”*$)正则表达式引起的。我使用它将字符串按空格分割,不包括带引号的字符串中的空格(“未分割的字符串”
)
在编译成.jar
文件后,我需要如何更新该正则表达式,使其在Java中工作?您是否能够通过使用clj
或lein
运行Clojure脚本来重现该问题?您使用哪个版本的Java(例如Java-version
)来运行Jar文件?我使用Java8
来运行它。我的脚本由几个文件组成,因此我不确定如何使用clj
或lein
正确运行它。请添加精确的代码和示例数据以重新编写。您是否能够通过使用clj
或lein
运行Clojure脚本来重现问题?您使用哪个版本的Java(例如Java-version
)来运行Jar文件?我使用Java8
来运行它。我的脚本由几个文件组成,因此我不确定如何使用clj
或lein
正确运行脚本。请添加精确的代码和示例数据以重新编写脚本