On 17 January 2011 17:42, Robert McIntyre <r...@mit.edu> wrote:
[...]
> You can then actually run your program by making a shell script with
> something like
> #!/bin/bash
> java -Xmn500M -Xms2000M -Xmx2000M -server -cp ./lib/*:./src
> clojure.main your-namespace-file.clj  $@

Put $@ in double quotes.  Otherwise bash will split up your args on
whitespace before calling java.

/tmp$ cat java
#!/bin/sh

for arg; do
    echo "\"$arg\""
done
/tmp$ cat launcher
#!/bin/sh

/tmp/java $@
/tmp$ ./java "This should be one arg"
"This should be one arg"
/tmp$ ./launcher "This should be one arg"
"This"
"should"
"be"
"one"
"arg"

> A little known fact is that the above can actually be embedded into a
> clojure source file with the following trick:
>
> Make this the first line of your clojure namespace to make it executable:
>
> ":";exec java -verbose:gc -Xmn500M -Xms2000M -Xmx2000M -server -cp
> "your-classpath" clojure.main $0 $*;

Similarly here, $* should be "$@".  Also, do you need the trailing semicolon?

-- 
Michael Wood <esiot...@gmail.com>

-- 
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

Reply via email to