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 <[email protected]> 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 <[email protected]> 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 [email protected]
> >> Note that posts from new members are moderated - please be patient with
> >> your first post.
> >> To unsubscribe from this group, send email to
> >> [email protected]
> >> 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 [email protected]
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
--
Softaddicts<[email protected]> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en