Paulo Candido <[email protected]> writes:
> I have a script, say "foo.clj" in a namespace "com.company.ns".
> "foo.clj" uses functions from another script, "bar.clj" in the same
> namespace. "foo"'s namespace has the line "(:use com.company.ns.bar)".
> It works in the REPL, it works inside Netbeans with Enclojure.
>
> Now I'm stuck trying to make "foo.clj" run as a standalone script. I
> tried including the path to "bar" in the classpath (-cp) but it does
> not work (at least not in the many ways I tried). Do I have to put all
> scripts in a jar or is there a way to inform clojure.main about the
> location of used/required scripts?
Clojure will search for files relative to the Java classpath. So it
will search for com.company.ns.foo in
$CLASSPATH/com/company/ns/foo.clj.
You can set the classpath either by setting the CLASSPATH environment
variable or by passing the -cp option to java. So for example if you
have the following project layout and Java 6:
myproject/
lib/
clojure.jar
clojure-contrib.jar
src/com/company/ns
foo.clj
bar.clj
Then from inside the myproject directory, I'd start a main function in
the foo.clj script with:
java -cp 'src:lib/*' clojure.main -e "(use 'com.company.ns.foo) (main)"
If you're on Windows you may need to use semicolons instead of colons to
separate classpath entries.
--
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