Yegor Bugayenko posted in a comment on ticket CLJ-1172 ( http://dev.clojure.org/jira/browse/CLJ-1172) that calling RT.init() before Compiler.load() solved what looks like a similar problem for him.
Andy On Tue, Mar 12, 2013 at 6:29 PM, Taegyoon Kim <[email protected]> wrote: > A new error occurred in Clojure 1.5.0. > > (Java interop: Compiler.load(new StringReader(str));) > > # Code # > import java.io.IOException; > import java.io.StringReader; > import clojure.lang.Compiler; > import clojure.lang.RT; > import clojure.lang.Var; > public class Main { > public static void main(String[] args) throws IOException, > ClassNotFoundException { > //clojure.main.main(args); > > // Load the Clojure script -- as a side effect this initializes > the runtime. > String str = "(ns user) (defn foo [a b] (str a \" \" b)) (def a > 3)"; > //RT.loadResourceScript("foo.clj"); > Compiler.load(new StringReader(str)); > // Get a reference to the foo function. > Var foo = RT.var("user", "foo"); > Var a = RT.var("user", "a"); // reference to the variable a > // Call it! > Object result = foo.invoke("Hi", "there"); > System.out.println(result); > > System.out.println(a); > System.out.println(a.get()); > } > } > > Test code: > *https://bitbucket.org/ktg/clojureembedtest*<https://bitbucket.org/ktg/clojureembedtest>(Eclipse > project) > > Reference: *http://stackoverflow.com/questions/2181774/calling- > clojure-from-java*<http://stackoverflow.com/questions/2181774/calling-clojure-from-java> > > > $ java -version > java version "1.7.0_15" > OpenJDK Runtime Environment (IcedTea7 2.3.7) (7u15-2.3.7-0ubuntu1~12.04.1) > OpenJDK Client VM (build 23.7-b01, mixed mode, sharing) > $ java -cp clojure-1.5.0.jar:. Main > > Exception in thread "main" java.lang.**ExceptionInInitializerError > at clojure.lang.Compiler.<clinit>**(Compiler.java:47) > at Main.main(Main.java:16) > Caused by: java.lang.NullPointerException > at clojure.lang.RT.baseLoader(RT.**java:2043) > at clojure.lang.RT.load(RT.java:**417) > at clojure.lang.RT.load(RT.java:**411) > at clojure.lang.RT.doInit(RT.**java:447) > at clojure.lang.RT.<clinit>(RT.**java:329) > ... 2 more > $ java -cp clojure-1.4.0.jar:. Main > > Hi there > #'user/a > 3 > > > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
