Using gen-class or the Clojure Java API like Daniel showed are the best ways I know of. If you want static types in Java and auto-complete, and things to feel like Java, use gen-class, if not, use the Clojure Java API.
On Saturday, 24 June 2017 12:05:55 UTC-7, thelmuth wrote: > > Thanks for the suggestions! Daniel's code helped me a lot, thanks! > > One thing that had me stuck for a while is that you have to have a Clojure > jar in your classpath. I also worked through a different way, using an > uberjar of a Clojure project. I posted my guides here > <https://push-language.hampshire.edu/t/calling-clojure-code-from-java/865?u=thelmuth> > > for anyone else trying to do this. > > On Thursday, June 1, 2017 at 10:11:25 PM UTC-4, Daniel Compton wrote: >> >> Hi thelmuth >> >> Here's a fully worked example. It calls the Clojure function >> myco.dashed-namespace.app.core/start!. Save it to >> src/myco/dashed_namespace/app/Main.java. >> >> package myco.dashed_namespace.app; >> >> import clojure.java.api.Clojure; >> import clojure.lang.IFn; >> >> public class Main { >> public static void main(String[] args) { >> try { >> IFn require = Clojure.var("clojure.core", "require"); >> require.invoke(Clojure.read("myco.dashed-namespace.app.core")); >> >> Clojure.var("myco.dashed-namespace.app.core", "start!").invoke(); >> } >> catch (Throwable e) { >> System.out.println(e.getMessage()); >> } >> } >> } >> >> >> On Fri, Jun 2, 2017 at 1:24 PM James Reeves <ja...@booleanknot.com> >> wrote: >> >>> There's a brief section on this on the Clojure website: >>> >>> https://clojure.org/reference/java_interop#_calling_clojure_from_java >>> >>> On 2 June 2017 at 01:35, thelmuth <trh...@gmail.com> wrote: >>> >>>> What is the best way to call a Clojure function from Java? >>>> >>>> Most of the resources I have found are either very old or don't go into >>>> enough detail. I am a Clojure programmer with very little Java background, >>>> and have been having trouble with the methods I've found, especially >>>> classpath issues. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> James Reeves >>> booleanknot.com >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- 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/d/optout.