gpt4 book ai didi

java - 制作一个评估 Clojure 字符串的可执行 jar

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:01 27 4
gpt4 key购买 nike

我正在构建一个加载 Clojure 文件的 Java 应用程序。我在制作单个可执行 jar 时遇到问题。我正在使用 One-Jar,但是当我尝试运行 jar 文件时出现异常:

Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.simontuffs.onejar.Boot.run(Boot.java:340)
at com.simontuffs.onejar.Boot.main(Boot.java:166)
Caused by: java.lang.ExceptionInInitializerError
at com.ziroby.clojure.App.main(App.java:14)
... 6 more
Caused by: java.lang.NullPointerException
at clojure.lang.RT.lastModified(RT.java:374)
at clojure.lang.RT.load(RT.java:408)
at clojure.lang.RT.load(RT.java:398)
at clojure.lang.RT.doInit(RT.java:434)
at clojure.lang.RT.<clinit>(RT.java:316)
... 7 more

当我查看导致它的行时,它似乎正在尝试获取相关类文件的 jar 信息:

    return ((JarURLConnection) url.openConnection()).getJarFile()
.getEntry(libfile).getTime();

我认为这意味着它正在尝试获取嵌入式 jar 的 jar 信息,而该信息实际上并不存在于文件系统中。它正在查看是否需要重新编译文件(如 common/core.clj)。

我做错了什么吗?有没有其他方法可以在不混淆 Clojure 的情况下创建可执行 jar(具有依赖项)?

最佳答案

我得出结论,这是 Clojure 中的错误。我能够添加一个空检查(就在 .getTime() 调用之前),并且它工作正常。我在 Clojure 的 Jira 中输入了一个错误:http://dev.clojure.org/jira/browse/CLJ-971

关于java - 制作一个评估 Clojure 字符串的可执行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7763480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com