OK, I don't know whether this is really a bug or just an obsolete message being printed on the console, but I've reopened the ticket and added a pointer to this discussion, and a link to exactly which commit it was that caused this change in behavior (just before Clojure 1.5.0-RC4).
Andy On Mar 12, 2013, at 9:41 PM, Taegyoon Kim wrote: > But then(putting RT.init()), > > Compiler.load() works, but Console (stderr?) says > > No need to call RT.init() anymore > > So I think this problem should be fixed. > > > 2013년 3월 13일 수요일 오전 11시 32분 5초 UTC+9, Andy Fingerhut 님의 말: > 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 <stelo...@gmail.com> 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 (Eclipse project) > > Reference: > 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 clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com 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 clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.