Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java:Java.lang.NumberFormatException:null调用Clojure_Java_Clojure - Fatal编程技术网

从Java:Java.lang.NumberFormatException:null调用Clojure

从Java:Java.lang.NumberFormatException:null调用Clojure,java,clojure,Java,Clojure,尝试使用所描述的方法,我最终得到了以下仍然显示异常的简化、缩小的代码: import clojure.lang.RT; public class FooMain { public static void main(String [] args) { RT.var("clojure.core", "read-string").invoke("(+ 1 2)"); // line-6 } } 这在运行时失败,因为我在文章末尾附加了跟踪。我已经用Clojure 1

尝试使用所描述的方法,我最终得到了以下仍然显示异常的简化、缩小的代码:

import clojure.lang.RT;

public class FooMain {

    public static void main(String [] args) {
        RT.var("clojure.core", "read-string").invoke("(+ 1 2)"); // line-6
    }
}
这在运行时失败,因为我在文章末尾附加了跟踪。我已经用Clojure 1.4或1.5常春藤DEP尝试过了:

<dependency org="org.clojure" name="clojure" rev="1.4.0"/> 

或:


追踪
运行:
[echo]ant.java.version=1.7
[回声]使用类路径运行应用程序=/home/mperdikeas/esavo-reg/playway/calling clojure from Java/lib-ivy/clojure-1.4.0-javadoc.jar:/home/mperdikeas/esavo-reg/playway/calling clojure from Java/lib-ivy/clojure-1.4.0.jar:/home/mperdikeas/esavo-reg/esavo-1.4.0-sources/dist/foo.jar
[java]java.lang.ExceptionInInitializeError
[java]位于org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
[java]位于org.apache.tools.ant.taskdefs.java.run(java.java:771)
[java]位于org.apache.tools.ant.taskdefs.java.executeJava(java.java:221)
[java]位于org.apache.tools.ant.taskdefs.java.executeJava(java.java:135)
[java]位于org.apache.tools.ant.taskdefs.java.execute(java.java:108)
[java]位于org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[java]位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
[java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java]位于java.lang.reflect.Method.invoke(Method.java:601)
[java]位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java]位于org.apache.tools.ant.Task.perform(Task.java:348)
[java]位于org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
[java]位于org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[java]位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
[java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java]位于java.lang.reflect.Method.invoke(Method.java:601)
[java]位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java]位于org.apache.tools.ant.Task.perform(Task.java:348)
[java]位于org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
[java]位于org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[java]位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
[java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java]位于java.lang.reflect.Method.invoke(Method.java:601)
[java]位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java]位于org.apache.tools.ant.Task.perform(Task.java:348)
[java]位于org.apache.tools.ant.Target.execute(Target.java:390)
[java]位于org.apache.tools.ant.Target.performTasks(Target.java:411)
[java]位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
[java]位于org.apache.tools.ant.Project.executeTarget(Project.java:1368)
[java]位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[java]位于org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[java]位于org.apache.tools.ant.Main.runBuild(Main.java:809)
[java]位于org.apache.tools.ant.Main.startAnt(Main.java:217)
[java]位于org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[java]位于org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
[java]原因:java.lang.ExceptionInInitializerError
[java]位于java.lang.Class.forName0(本机方法)
[java]位于java.lang.Class.forName(Class.java:266)
[java]位于clojure.lang.RT.loadClassForName(RT.java:2056)
[java]位于clojure.lang.RT.load(RT.java:419)
[java]位于clojure.lang.RT.load(RT.java:400)
[java]位于clojure.lang.RT.doInit(RT.java:436)
[java]位于clojure.lang.RT.(RT.java:318)
[java]位于FooMain.main(FooMain.java:6)
[java]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
[java]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[java]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java]位于java.lang.reflect.Method.invoke(Method.java:601)
[java]位于org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
[java]位于org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
[java]。。。34多
[java]原因:java.lang.NumberFormatException:null
[java]位于java.lang.Integer.parseInt(Integer.java:454)
[java]位于java.lang.Integer.valueOf(Integer.java:582)
[java]位于clojure.core$fn__6145.invoke(core.clj:6247)
[java]位于clojure.core\uuu init.load(未知源)
[java]位于clojure.core\uuu init。(未知源)
[java]。。。48多
[java]java结果:-1

在执行任何代码之前,Clojure运行时尝试加载
Clojure.core
命名空间时,会引发您看到的异常。具体地说,在尝试解析类路径上的
clojure/version.properties
资源中的版本号时,会引发异常

  • 确保此资源确实存在
  • 确保资源可以从您正在使用的类加载器访问

    • 多亏了你,我想我找到了答案

      两者:

      • clojure-1.5.1.jar

      • clojure-1.5.1-sources.jar

      包括
      clojure/version.properties
      文件。但是,
      clojure-1.5.1-sources.jar
      中的版本不包含可解析版本,而是包含以下内容:

      version=${version}
      
      只需从类路径中删除
      clojure-1.5.1-sources.jar
      (或者,在我的例子中设置
      type=“jar”
      
       run:
       [echo] ant.java.version=1.7
       [echo] running the app with classpath = /home/mperdikeas/esavo-reg/playground/calling-clojure-from-Java/lib-ivy/clojure-1.4.0-javadoc.jar:/home/mperdikeas/esavo-reg/playground/calling-clojure-from-Java/lib-ivy/clojure-1.4.0-sources.jar:/home/mperdikeas/esavo-reg/playground/calling-clojure-from-Java/lib-ivy/clojure-1.4.0.jar:/home/mperdikeas/esavo-reg/playground/calling-clojure-from-Java/dist/foo.jar
       [java] java.lang.ExceptionInInitializerError
       [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
       [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:771)
       [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221)
       [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
       [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
       [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
       [java]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
       [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       [java]     at java.lang.reflect.Method.invoke(Method.java:601)
       [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
       [java]     at org.apache.tools.ant.Task.perform(Task.java:348)
       [java]     at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
       [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
       [java]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
       [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       [java]     at java.lang.reflect.Method.invoke(Method.java:601)
       [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
       [java]     at org.apache.tools.ant.Task.perform(Task.java:348)
       [java]     at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
       [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
       [java]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
       [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       [java]     at java.lang.reflect.Method.invoke(Method.java:601)
       [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
       [java]     at org.apache.tools.ant.Task.perform(Task.java:348)
       [java]     at org.apache.tools.ant.Target.execute(Target.java:390)
       [java]     at org.apache.tools.ant.Target.performTasks(Target.java:411)
       [java]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
       [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
       [java]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
       [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
       [java]     at org.apache.tools.ant.Main.runBuild(Main.java:809)
       [java]     at org.apache.tools.ant.Main.startAnt(Main.java:217)
       [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
       [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
       [java] Caused by: java.lang.ExceptionInInitializerError
       [java]     at java.lang.Class.forName0(Native Method)
       [java]     at java.lang.Class.forName(Class.java:266)
       [java]     at clojure.lang.RT.loadClassForName(RT.java:2056)
       [java]     at clojure.lang.RT.load(RT.java:419)
       [java]     at clojure.lang.RT.load(RT.java:400)
       [java]     at clojure.lang.RT.doInit(RT.java:436)
       [java]     at clojure.lang.RT.<clinit>(RT.java:318)
       [java]     at FooMain.main(FooMain.java:6)
       [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
       [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       [java]     at java.lang.reflect.Method.invoke(Method.java:601)
       [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
       [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
       [java]     ... 34 more
       [java] Caused by: java.lang.NumberFormatException: null
       [java]     at java.lang.Integer.parseInt(Integer.java:454)
       [java]     at java.lang.Integer.valueOf(Integer.java:582)
       [java]     at clojure.core$fn__6145.invoke(core.clj:6247)
       [java]     at clojure.core__init.load(Unknown Source)
       [java]     at clojure.core__init.<clinit>(Unknown Source)
       [java]     ... 48 more
       [java] Java Result: -1
      
      version=${version}