Clojure gorilla repl和JVM 10异常
Linux Manjaro 17.1.11 OpenJDK 64位服务器虚拟机(构建10.0.1+10,混合模式) 基于Java 10.0.1 OpenJDK 64位服务器虚拟机的Leiningen 2.8.1 启动新项目进行测试: 将gorilla添加到project.clj:Clojure gorilla repl和JVM 10异常,clojure,jvm,leiningen,Clojure,Jvm,Leiningen,Linux Manjaro 17.1.11 OpenJDK 64位服务器虚拟机(构建10.0.1+10,混合模式) 基于Java 10.0.1 OpenJDK 64位服务器虚拟机的Leiningen 2.8.1 启动新项目进行测试: 将gorilla添加到project.clj: :plugins [[lein-gorilla "0.4.0"]] :plugins [[javax.xml.bind/jaxb-api "2.3.0"] [lein-gorilla "0.4.0
:plugins [[lein-gorilla "0.4.0"]]
:plugins [[javax.xml.bind/jaxb-api "2.3.0"]
[lein-gorilla "0.4.0"]])
运行时获取异常:
$ lein gorilla
例外情况:
clojure.lang.Compiler$CompilerException:java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter,编译:(org/httpkit/server.clj:1:1)
原因:java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter
已尝试:
github上的http工具包有一个已解决的问题。建议在项目中添加以下内容。clj
:jvm-opts ["--add-modules" "java.xml.bind”]
或者添加到java启动:添加模块java.xml.bind
lein选项没有帮助,我在shell中尝试使用了java启动选项export
,但这导致了JVM致命的异常
如果有其他方法来配置JVM(当然有),我不知道该怎么做。。。
通过搜索,我找到了许多对异常的引用,但没有一个假设对JVM机制一无所知
示例:
编辑(一轮工作):
决定回滚到JVM 8、Java 1.8
我还在clojars.com上找到了更新版本的gorilla repl。去
工作
也许它可以与新的Java运行时一起工作,但我决定一次按下所有按钮…另一个选项是添加
[javax.xml.bind/jaxb-api“2.3.0”]
作为依赖项。
但是,与:jvm opts
类似,依赖项不适用于插件(如lein gorilla
),因为它们是单独运行的
您可以修改原始插件并将jaxb api添加到它的依赖项中(我在本PR:中这样做了),也可以通过将jaxb api添加到项目中的:plugins
向量中来“伪造它”。clj:
:plugins [[lein-gorilla "0.4.0"]]
:plugins [[javax.xml.bind/jaxb-api "2.3.0"]
[lein-gorilla "0.4.0"]])
什么“JVM致命异常”?这是一个阻止java启动的异常,我现在想不起细节了,因为我尝试了很多东西。最后,我又回到了Java1.8。我现在将它添加为编辑。我可以看到这应该如何工作。我现在无法测试它,因为我现在返回了一个版本。