Paste number 99436: Java from clojure from java

Index of paste annotations: 1 | 2

Paste number 99436: Java from clojure from java
Pasted by: mario-goulart
When:2 years, 2 days ago
Share:Tweet this! | http://paste.lisp.org/+24Q4
Channel:#clojure
Paste contents:
Raw Source | XML | Display As
// Bar.java
import clojure.lang.RT;
import clojure.lang.Var;
 
public class Bar {

    public static int baz (int a, int b) {
	return a + b;
    }

    public static void main(String[] args) throws Exception {

	if (args.length == 0) {
	    System.err.println("Filename expected as argument.");
	    System.exit(1);
	}

        RT.loadResourceScript(args[0]);
        Var foo = RT.var("user", "foo");
        Object result = foo.invoke(2, 4);
        System.out.println(result);
    }
}


;; foo.clj
(ns user)
 
(defn foo [a b]
  (. bar baz a b))


$ javac -cp clojure.jar Bar.java
$ java -cp clojure.jar Bar foo.clj

Exception in thread "main" java.lang.Exception: Unable to resolve symbol: bar in this context (foo.clj:4)
        at clojure.lang.Compiler.analyze(Compiler.java:4420)
        at clojure.lang.Compiler.analyze(Compiler.java:4366)
        at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:781)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:4592)
        at clojure.lang.Compiler.analyze(Compiler.java:4405)
        at clojure.lang.Compiler.analyze(Compiler.java:4366)
        at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:3942)
        at clojure.lang.Compiler$FnMethod.parse(Compiler.java:3777)
        at clojure.lang.Compiler$FnMethod.access$1100(Compiler.java:3654)
        at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3024)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:4590)
        at clojure.lang.Compiler.analyze(Compiler.java:4405)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:4580)
        at clojure.lang.Compiler.analyze(Compiler.java:4405)
        at clojure.lang.Compiler.access$100(Compiler.java:35)
        at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:373)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:4592)
        at clojure.lang.Compiler.analyze(Compiler.java:4405)
        at clojure.lang.Compiler.analyze(Compiler.java:4366)
        at clojure.lang.Compiler.eval(Compiler.java:4646)
        at clojure.lang.Compiler.load(Compiler.java:4972)
        at clojure.lang.RT.loadResourceScript(RT.java:330)
        at clojure.lang.RT.loadResourceScript(RT.java:317)
        at clojure.lang.RT.loadResourceScript(RT.java:309)
        at Bar.main(Bar.java:18)
Caused by: java.lang.Exception: Unable to resolve symbol: bar in this context
        at clojure.lang.Compiler.resolveIn(Compiler.java:4797)
        at clojure.lang.Compiler.resolve(Compiler.java:4743)
        at clojure.lang.Compiler.analyzeSymbol(Compiler.java:4720)
        at clojure.lang.Compiler.analyze(Compiler.java:4387)


Annotations for this paste:

Annotation number 1: Java from clojure from java
Pasted by: mario-goulart
When:2 years, 2 days ago
Share:Tweet this! | http://paste.lisp.org/+24Q4/1
Paste contents:
Raw Source | Display As
// Bar.java
package bar;

import clojure.lang.RT;
import clojure.lang.Var;
 
public class Bar {

    public static int baz (int a, int b) {
	return a + b;
    }

    public static void main(String[] args) throws Exception {

	if (args.length == 0) {
	    System.err.println("Filename expected as argument.");
	    System.exit(1);
	}

        RT.loadResourceScript(args[0]);
        Var foo = RT.var("user", "foo");
        Object result = foo.invoke(2, 4);
        System.out.println(result);
    }
}


;; foo.clj
(import bar.Bar)

(defn foo [a b]
  (Bar/baz a b))

Annotation number 2: error
Pasted by: mario-goulart
When:2 years, 2 days ago
Share:Tweet this! | http://paste.lisp.org/+24Q4/2
Paste contents:
Raw Source | Display As
 $ java -cp .:clojure.jar Bar foo.clj
Exception in thread "main" java.lang.NoClassDefFoundError: Bar (wrong name: bar/Bar)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Bar.  Program will exit.

Colorize as:
Show Line Numbers
Index of paste annotations: 1 | 2

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.