使用一个jar构建一个jar文件



我正试图使用一个jar来生成一个包含clojure jar文件和java类文件的jar文件:创建一个jar文件,用于从java/clojure 执行

按照说明,我可以使用one-jar-appgen-0.97.jar生成目录。按照指示,我替换了java源代码,并添加了ThingOne-1.0.0-SNAPSHOT-standalone.jar

运行ant,它构建了一个没有错误的jar文件,但当我尝试执行jar文件时,我收到了错误消息。

java -jar build/test-one-jar.jar 
test_one_jar main entry point, args=[]
Hello from Java!
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.simontuffs.onejar.Boot.run(Boot.java:342)
    at com.simontuffs.onejar.Boot.main(Boot.java:168)
Caused by: java.lang.ExceptionInInitializerError
    at clojure.lang.Namespace.<init>(Namespace.java:34)
    at clojure.lang.Namespace.findOrCreate(Namespace.java:176)
    at clojure.lang.Var.internPrivate(Var.java:149)
    at ThingOne.core.<clinit>(Unknown Source)
    at onejar.main.TestOneJarMain.run(TestOneJarMain.java:27)
    at onejar.main.TestOneJarMain.main(TestOneJarMain.java:20)
    ... 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)
    ... 12 more

可能出了什么问题?

OneJar的Boot.java类中的第168行和第342行表示设置属性有问题。当单元测试失败时,就会出现此问题。我猜这与SourceForge One Jar bug Tracker中的错误3090800有关。

最新更新