2013-01-01 35 views
0

我试图设置ritz-nrepl使用emacs作为clojure调试器。安装ritz-nrepl for emacs

我有Lein 2.我有emacs 24.2.1(全新安装)和clojure模式。然后我在nREPL调试器安装(在​​和.lein/profiles.clj中加入内容)然后做了M-x nrepl-ritz-jack-in之后做了自述文件https://github.com/pallet/ritz/tree/develop/nrepl的说明。我得到了下面的输出。难道我做错了什么?我只是完成了我所说的,没有更多。也许我错过了一步?

Could not find artifact robert:hooke:jar:1.1.2 in central (http://repo1.maven.org/maven2) 

Retrieving robert/hooke/1.1.2/hooke-1.1.2.jar (3k)from https://clojars.org/repo/ 

Retrieving leiningen/leiningen/2.0.0-preview10/leiningen-2.0.0-preview10.jar (165k) 

    from https://clojars.org/repo/ 

Retrieving leiningen-core/leiningen-core/2.0.0-preview10/leiningen-core-2.0.0-preview10.jar (21k) 

    from https://clojars.org/repo/ 

Exception in thread "main" java.lang.ClassNotFoundException: com.sun.jdi.VirtualMachine 

    at java.net.URLClassLoader$1.run(Unknown Source) 

    at java.net.URLClassLoader$1.run(Unknown Source) 

    at java.security.AccessController.doPrivileged(Native Method) 

    at java.net.URLClassLoader.findClass(Unknown Source) 

    at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:61) 

    at java.lang.ClassLoader.loadClass(Unknown Source) 

    at java.lang.ClassLoader.loadClass(Unknown Source) 

    at java.lang.Class.forName0(Native Method) 

    at java.lang.Class.forName(Unknown Source) 

    at ritz.jpda.jdi$eval1039$loading__4784__auto____1040.invoke(jdi.clj:1) 

    at ritz.jpda.jdi$eval1039.invoke(jdi.clj:1) 

    at clojure.lang.Compiler.eval(Compiler.java:6511) 

    at clojure.lang.Compiler.eval(Compiler.java:6501) 

    at clojure.lang.Compiler.load(Compiler.java:6952) 

    at clojure.lang.RT.loadResourceScript(RT.java:359) 

    at clojure.lang.RT.loadResourceScript(RT.java:350) 

    at clojure.lang.RT.load(RT.java:429) 

    at clojure.lang.RT.load(RT.java:400) 

    at clojure.core$load$fn__4890.invoke(core.clj:5415) 

    at clojure.core$load.doInvoke(core.clj:5414) 

    at clojure.lang.RestFn.invoke(RestFn.java:408) 

    at clojure.core$load_one.invoke(core.clj:5227) 

    at clojure.core$load_lib.doInvoke(core.clj:5264) 

    at clojure.lang.RestFn.applyTo(RestFn.java:142) 

    at clojure.core$apply.invoke(core.clj:603) 

    at clojure.core$load_libs.doInvoke(core.clj:5298) 

    at clojure.lang.RestFn.applyTo(RestFn.java:137) 

    at clojure.core$apply.invoke(core.clj:603) 

    at clojure.core$require.doInvoke(core.clj:5381) 

    at clojure.lang.RestFn.invoke(RestFn.java:1096) 

    at ritz.jpda.debug$eval888$loading__4784__auto____889.invoke(debug.clj:1) 

    at ritz.jpda.debug$eval888.invoke(debug.clj:1) 

    at clojure.lang.Compiler.eval(Compiler.java:6511) 

    at clojure.lang.Compiler.eval(Compiler.java:6501) 

    at clojure.lang.Compiler.load(Compiler.java:6952) 

    at clojure.lang.RT.loadResourceScript(RT.java:359) 

    at clojure.lang.RT.loadResourceScript(RT.java:350) 

    at clojure.lang.RT.load(RT.java:429) 

    at clojure.lang.RT.load(RT.java:400) 

    at clojure.core$load$fn__4890.invoke(core.clj:5415) 

    at clojure.core$load.doInvoke(core.clj:5414) 

    at clojure.lang.RestFn.invoke(RestFn.java:408) 

    at clojure.core$load_one.invoke(core.clj:5227) 

    at clojure.core$load_lib.doInvoke(core.clj:5264) 

    at clojure.lang.RestFn.applyTo(RestFn.java:142) 

    at clojure.core$apply.invoke(core.clj:603) 

    at clojure.core$load_libs.doInvoke(core.clj:5298) 

    at clojure.lang.RestFn.applyTo(RestFn.java:137) 

    at clojure.core$apply.invoke(core.clj:605) 

    at clojure.core$use.doInvoke(core.clj:5392) 

    at clojure.lang.RestFn.invoke(RestFn.java:3659) 

    at ritz.nrepl$eval5$loading__4784__auto____6.invoke(nrepl.clj:1) 

    at ritz.nrepl$eval5.invoke(nrepl.clj:1) 

    at clojure.lang.Compiler.eval(Compiler.java:6511) 

    at clojure.lang.Compiler.eval(Compiler.java:6501) 

    at clojure.lang.Compiler.load(Compiler.java:6952) 

    at clojure.lang.RT.loadResourceScript(RT.java:359) 

    at clojure.lang.RT.loadResourceScript(RT.java:350) 

    at clojure.lang.RT.load(RT.java:429) 

    at clojure.lang.RT.load(RT.java:400) 

    at clojure.core$load$fn__4890.invoke(core.clj:5415) 

    at clojure.core$load.doInvoke(core.clj:5414) 

    at clojure.lang.RestFn.invoke(RestFn.java:408) 

    at clojure.core$load_one.invoke(core.clj:5227) 

    at clojure.core$load_lib.doInvoke(core.clj:5264) 

    at clojure.lang.RestFn.applyTo(RestFn.java:142) 

    at clojure.core$apply.invoke(core.clj:603) 

    at clojure.core$load_libs.doInvoke(core.clj:5298) 

    at clojure.lang.RestFn.applyTo(RestFn.java:137) 

    at clojure.core$apply.invoke(core.clj:603) 

    at clojure.core$require.doInvoke(core.clj:5381) 

    at clojure.lang.RestFn.invoke(RestFn.java:408) 

    at user$eval1.invoke(NO_SOURCE_FILE:1) 

    at clojure.lang.Compiler.eval(Compiler.java:6511) 

    at clojure.lang.Compiler.eval(Compiler.java:6501) 

    at clojure.lang.Compiler.eval(Compiler.java:6500) 

    at clojure.lang.Compiler.eval(Compiler.java:6477) 

    at clojure.core$eval.invoke(core.clj:2797) 

    at clojure.main$eval_opt.invoke(main.clj:297) 

    at clojure.main$initialize.invoke(main.clj:316) 

    at clojure.main$null_opt.invoke(main.clj:349) 

    at clojure.main$main.doInvoke(main.clj:427) 

    at clojure.lang.RestFn.invoke(RestFn.java:421) 

    at clojure.lang.Var.invoke(Var.java:419) 

    at clojure.lang.AFn.applyToHelper(AFn.java:163) 

    at clojure.lang.Var.applyTo(Var.java:532) 

    at clojure.main.main(main.java:37) 

Subprocess failed 

回答

2

我认为你缺少classpath中的tools.jar,你会发现它在JDK的lib目录下(而不是JRE)。

+1

我觉得这个答案可以更简洁地表述为“安装JDK”。 – Dmitry

+0

我已经安装了JDK,并将其复制到我的项目类路径中,但没有任何区别。或者,也许我应该说复制到我的项目库/目录。我不知道emacs/nrepl-ritz-jack-in如何处理类路径。 – oskarkv

+0

嗯,我捣乱了我的PATH的另一个问题,现在它的工作。不记得我改变了什么。 :P – oskarkv

1

如果任何人有这个问题,这是我如何解决它 (这是一个有点不仅仅是安装JDK更复杂)

  1. 安装JDK。我把它放在C:\ jdk1.7.0
  2. 使用lein-localrepo安装它作为一个本地的jar如下:
  3. 添加:plugins [[lein-localrepo "0.4.0"]]您的用户个人资料.lein\profiles.clj
  4. lein deps
  5. lein localrepo install "C:/jdk1.7.0/lib/tools.jar" "com.sun.jdi.VirtualMachine" 1.7.0
  6. 确保lein-localrepo可以找到罐子。 lein localrepo list | grep jdi应显示:com.sun.jdi.VirtualMachine (1.7.0)
  7. 添加:dependencies [[com.sun.jdi.VirtualMachine "1.7.0"]]到您的用户配置文件
  8. lein deps
  9. 在Emacs,nrepl-ritz-jack-in现在应该正常工作