This will work only if A) there is a manifest in the jar specifying which class contains the main method
B) if you do not need to add libraries explicitly, -cp is ignored when you use -jar Clojure.org is correct, especially regarding b). If you happen to need to add libs to your REPL, -jar is a dead end. If you happen to create a specific main for your own app, using -jar is much more complex to setup. Luc P > On http://clojure.org/getting_started: > > > Download <http://clojure.org/downloads> and unzip Clojure. In the directory > in which you expanded clojure.zip, run: > > java -cp clojure-1.4.0.jar clojure.main > > Should be just: > > > java -jar clojure-1.4.0.jar > > > It's a detail, but an important one, as it's the first contact for most of > the new Clojure users. > > Denis > > On Mon, Sep 3, 2012 at 9:00 AM, Denis Labaye <denis.lab...@gmail.com> wrote: > > > > > 1. java -cp ./org/clojure/clojure/1.4.0/clojure-1.4.0.jar clojure.main > > 2. cut & paste your code in the REPL > > 3. type (start) [enter] > > > > > > > > > > On Fri, Aug 31, 2012 at 3:36 AM, gearss <gearss8...@gmail.com> wrote: > > > >> I have a file named pong.clj, it isunder following, I want to know how > >> can I run it? > >> Thank you. > >> > >> -------- > >> (ns example.game.pong > >> (:use [penumbra opengl] > >> [clojure.contrib.def]) > >> (:require [penumbra [app :as app] [text :as text]])) > >> (def ball-width 0.03) > >> (def ball-height 0.03) > >> (def paddle-width 0.02) > >> (def paddle-height 0.15) > >> ;;; > >> (defn abs [x] (Math/abs x)) > >> (defn intersect-1d [[a b] [x y]] > >> (and (<= a y) (>= b x))) > >> (defn intersect-2d [[a b c d] [x y z w]] > >> (and (intersect-1d [a c] [x z]) > >> (intersect-1d [b d] [y w]))) > >> (defn reflector [[x y w h] f] > >> (let [r [x y (+ x w) (+ y h)]] > >> (fn [region velocity] > >> (if (intersect-2d region r) > >> (f velocity) > >> velocity)))) > >> (defvar boundaries > >> [(reflector [0 -1 1 1] (fn [[x y]] [x (abs y)])) > >> (reflector [0 1 1 1] (fn [[x y]] [x (- (abs y))])) > >> (reflector [-1 0 1 1] (fn [[x y]] [(abs x) y])) > >> (reflector [1 0 1 1] (fn [[x y]] [(- (abs x)) y]))]) > >> (defn update-ball [state dt] > >> (let [ball (concat (:p state) (map + (:p state) [ball-width > >> ball-height])) > >> v (reduce > >> #(%2 ball %1) (:v state) > >> (conj > >> boundaries > >> (reflector [0.01 (:left state) paddle-width paddle-height] > >> (fn [[x y]] [(abs x) y])) > >> (reflector [(- 0.99 paddle-width) (:right state) paddle-width > >> paddle-height] > >> (fn [[x y]] [(- (abs x)) y]))))] > >> (assoc state > >> :v v > >> :p (map + (:p state) (map (partial * dt) v))))) > >> (defn draw-ball [pos] > >> (push-matrix > >> (apply translate pos) > >> (draw-quads > >> (vertex 0 0) > >> (vertex ball-width 0) > >> (vertex ball-width ball-height) > >> (vertex 0 ball-height)))) > >> ;;; > >> (defn update-opponent-paddle [state] > >> (let [[x y] (:p state) > >> [vx vy] (:v state) > >> dt (/ (- 1 x) vx) > >> dy (- (+ y (* vy dt)) (:right state))] > >> (assoc state > >> :v-right (if (neg? vx) 0 (/ dy dt))))) > >> (defn update-player-paddle [state] > >> (assoc state > >> :v-left > >> (cond > >> (app/key-pressed? :up) -1 > >> (app/key-pressed? :down) 1 > >> :else 0))) > >> (defn update-paddle [dt v pos] > >> (min (- 1 paddle-height) (max 0 (+ pos (* dt v))))) > >> (defn draw-paddle [x y] > >> (push-matrix > >> (translate x y) > >> (draw-quads > >> (vertex 0 0) > >> (vertex paddle-width 0) > >> (vertex paddle-width paddle-height) > >> (vertex 0 paddle-height)))) > >> ;;; > >> (defn reset-game [state] > >> (assoc state > >> :v [0.4 0.8] > >> :p [0.5 0.5] > >> :left 0.5, :v-left 0.0 > >> :right 0.5, :v-right 0.0)) > >> (defn init [state] > >> (app/vsync! true) > >> (app/title! "Pong") > >> (app/periodic-update! 2 update-opponent-paddle) > >> (reset-game state)) > >> (defn reshape [[x y w h] state] > >> (ortho-view 0 1 1 0 -1 1) > >> state) > >> (defn update [[delta _] state] > >> (-> state > >> (update-player-paddle) > >> (assoc :left (update-paddle delta (:v-left state) (:left state))) > >> (assoc :right (update-paddle delta (:v-right state) (:right state))) > >> (update-ball delta))) > >> (defn display [[delta _] state] > >> (draw-ball (:p state)) > >> (draw-paddle 0.01 (:left state)) > >> (draw-paddle (- 0.99 paddle-width) (:right state)) > >> (app/repaint!)) > >> (defn start [] > >> (app/start > >> {:display display, :reshape reshape, :update update, :init init} > >> {})) > >> > >> > >> -- > >> 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 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 -- Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad! -- 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