This works for me under Windows 7. I set all forward slashes paths in
my .emacs file like this:
(progn
(setq cdt-dir "c:/msysgit/cdt")
(setq cdt-source-path "c:/clj/clojure-1.2.0/src/jvm;c:/clj/
clojure-1.2.0/src/clj;c:/clj/clojure-contrib-1.2.0/src/main/clojure/
clojure/contrib;")
(load-file (format "%s/ide/emacs/cdt.el" cdt-dir)))
And these are the diffs from George's current windows version
(hopefully George will be able to make them available in a more
convenient way) - and note the "file:///" with 3 slashes under
Windows:
---------
diff --git a/.gitignore b/.gitignore
diff --git a/README b/README
diff --git a/docs/cdt.muse b/docs/cdt.muse
diff --git a/docs/emacs-cdt.muse b/docs/emacs-cdt.muse
diff --git a/ide/emacs/cdt.el b/ide/emacs/cdt.el
index 0560ab2..42e3e1a 100644
--- a/ide/emacs/cdt.el
+++ b/ide/emacs/cdt.el
@@ -25,13 +25,13 @@
(gud-call (format "(reval-display '%s)" (thing-at-point 'sexp))))
(defun strip-trail (path)
- (if (= (elt path (- (length path) 1)) ?\\)
+ (if (= (elt path (- (length path) 1)) ?/)
(substring path 0 (- (length path) 1))
path))
(defun cdt-query-cmdline ()
(let ((path (strip-trail cdt-dir)))
- (format "java -classpath%s\\lib\\clojure-1.2.0.jar;%s\\lib\
\clojure-contrib-1.2.0.jar;%s\\lib\\debug-
repl-0.3.0-20091229.021828-3.jar;%s\\src clojure.main --repl"
+ (format "java -classpath%s/lib/clojure-1.2.0.jar;%s/lib/clojure-
contrib-1.2.0.jar;%s/lib/debug-repl-0.3.0-20091229.021828-3.jar;%s/src
clojure.main --repl"
path path path path)))
(defun cdt (port)
diff --git a/project.clj b/project.clj
diff --git a/src/com/georgejahad/cdt.clj b/src/com/georgejahad/cdt.clj
index d479877..d2d570f 100644
--- a/src/com/georgejahad/cdt.clj
+++ b/src/com/georgejahad/cdt.clj
@@ -21,10 +21,11 @@
;; add-classpath is ugly, but handles the fact that tools.jar and
;; sa-jdi.jar are platform dependencies that I can't easily put in a
;; repo:
-(with-out-str (add-classpath (format "file://%s/../lib/tools.jar"
+(with-out-str (add-classpath (format "file:///%s/../lib/tools.jar"
(System/getProperty
"java.home"))))
-(with-out-str (add-classpath (format "file://%s/../lib/sa-jdi.jar"
+(with-out-str (add-classpath (format "file:///%s/../lib/sa-jdi.jar"
(System/getProperty
"java.home"))))
+
(import com.sun.jdi.Bootstrap
com.sun.jdi.request.EventRequest
com.sun.jdi.event.BreakpointEvent
@@ -90,7 +91,7 @@
(defonce source-path (atom ""))
(defn remove-trailing-slashes [s]
- (str/replace s "\\;" ";"))
+ (str/replace s "/:" ":"))
(defn set-source-path [path]
(reset! source-path (remove-trailing-slashes path)))
@@ -98,10 +99,10 @@
(defn get-source []
(let [file (.sourcePath (.location (.frame (ct) (cf))))
paths (.split @source-path ";")]
- (if (= (first file) \\)
+ (if (= (first file) \/)
file
(first (filter #(.exists (java.io.File. %))
- (for [p paths] (str p "\\" file)))))))
+ (for [p paths] (str p "/" file)))))))
(defmacro check-unexpected-exception [& body]
`(try
@@ -325,11 +326,11 @@
(re-pattern (str s "\\$"))))
(defn fix-class [c]
- (str/replace c "/" "."))
+ (str/replace c "\\" "."))
(defn get-class* [fname]
(->> (.split @source-path ";")
- (map #(re-find (re-pattern (str % "\\(.*)(.clj|.java)"))
fname))
+ (map #(re-find (re-pattern (str % "/(.*)(.clj|.java)"))
fname))
(remove nil?)
first
second
@@ -426,7 +427,7 @@
(defn get-file-name [frame]
(let [sp (try (.sourcePath (.location frame))
(catch Exception e "source not found"))]
- (last (.split sp "\\"))))
+ (last (.split sp "/"))))
(defn clojure-frame? [frame fields]
(let [names (map #(.name %) fields)]
On Oct 11, 6:48 pm, atreyu <[email protected]> wrote:
> Hi folks and congrats to George Jahad for this great work.
> Hoewer the cdt dont work on my windows vista. After some changes on my
> own i get the same error of Greg Willams:
>
> java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28)
>
> i've tried add-classpath of tool.jar (where is the class in my jdk)
> with various formats,
> after testing the urls in browser with success but i get the
> ClassNotFound all the time
>
> Current directory is c:/Users/atreyu/AppData/Roaming/.emacs.d/
> Clojure 1.2.0
> user=> java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap
> (cdt.clj:28)
> user=> java.lang.Exception: Unable to resolve symbol: set-source-path
> in this context (NO_SOURCE_FILE:2)
> user=> java.lang.Exception: Unable to resolve symbol: cdt-attach in
> this context (NO_SOURCE_FILE:3)
> user=> (def file-url (format "file://%s/../lib/tools.jar"
> (System/getProperty
> "java.home")))
> #'user/file-url
> user=> file-url
> "file://c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../lib/tools.jar"
> user=> (def file-path "c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../
> lib/tools.jar")
> #'user/file-url
> user=> (.exists (java.io.File. file-path))
> true
> user=> (add-classpath file-url)
> WARNING: add-classpath is deprecated
> nil
> user=> (import com.sun.jdi.Bootstrap)
> java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap
> (NO_SOURCE_FILE:15)
>
> i hope somebody'll can help this poor win users ;-)
--
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