In the "ClojureScript Compiler" section of the ClojureScript Quick Start Guide <https://clojurescript.org/guides/quick-start>, we run the build script with the java command:
java -cp cljs.jar:src clojure.main build.clj This command starts a JVM and loads the cljs.jar file and all of the contents of the 'src' directory, to the JVM Classpath. According to the man page for the java program, clojure.main is a class file, (I'm assuming this one <https://github.com/clojure/clojure/blob/master/src/jvm/clojure/main.java>) and build.clj is its argument. My question is: *How is the clojure.main class getting loaded to the classpath?* Obviously clojure.main is part of Clojure. By unzipping the cljs.jar, I see that it has a project.clj file with the following contents: (defproject org.clojure/clojurescript "0.0-SNAPSHOT" :description "ClojureScript compiler and core runtime library" :parent [org.clojure/pom.contrib "0.1.2"] :url "https://github.com/clojure/clojurescript" :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} :jvm-opts ^:replace ["-Dclojure.compiler.direct-linking=true" "-Xmx512m" "-server"] :source-paths ["src/main/clojure" "src/main/cljs"] :resource-paths ["src/main/cljs"] :test-paths ["src/test/clojure" "src/test/cljs" "src/test/self" "src/test/cljs_cp"] :dependencies [[org.clojure/clojure "1.8.0"] [org.clojure/data.json "0.2.6"] [org.clojure/tools.reader "1.0.3"] [org.clojure/test.check "0.10.0-alpha2" :scope "test"] [com.cognitect/transit-clj "0.8.300"] [org.clojure/google-closure-library "0.0-20170519-fa0499ef"] [com.google.javascript/closure-compiler-unshaded "v20170626"] [org.mozilla/rhino "1.7R5"]] :profiles {:1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]} :uberjar {:aot :all :main clojure.main}} :aliases {"test-all" ["with-profile" "test,1.5:test,1.6" "test"] "check-all" ["with-profile" "1.5:1.6" "check"]} :min-lein-version "2.0.0") [org.clojure/clojure "1.8.0"] is listed as a dependency. Is this how Clojure is getting loaded to the JVM Classpath? If so, how is this happening? It doesn't seem like the java program would be smart enough to parse a project.clj file. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescript@googlegroups.com. Visit this group at https://groups.google.com/group/clojurescript.