Btwy, using leiningen's repl hides all these issues... Luc
> 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 > -- 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