简体   繁体   English

为emacs安装ritz-nrepl

[英]Installing ritz-nrepl for emacs

I'm trying to setup ritz-nrepl to use emacs as a clojure debugger. 我正在尝试设置ritz-nrepl以将emacs用作clojure调试器。

I have lein 2. I got emacs 24.2.1 (fresh install) and clojure-mode. 我有lein2。我得到了emacs 24.2.1(全新安装)和clojure-mode。 Then I did what the readme says here https://github.com/pallet/ritz/tree/develop/nrepl under nREPL debugger installation (putting stuff in init.el and .lein/profiles.clj ) and then did Mx nrepl-ritz-jack-in . 然后我在nREPL调试器安装下执行了自述文件https://github.com/pallet/ritz/tree/develop/nrepl的内容(将内容放入init.el.lein/profiles.clj ),然后执行了Mx nrepl-ritz-jack-in I got the output below. 我得到下面的输出。 Am I doing something wrong? 难道我做错了什么? I have only done what I said, nothing more. 我只做了我说的话,仅此而已。 Maybe I'm missing a step? 也许我错过了一步?

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

我认为您在类路径中缺少tools.jar,可以在JDK(不是JRE)的lib目录中找到它。

If anyone else has this problem this is how I solved it (it was a little more complicated than just installing the JDK) 如果其他人有此问题,这就是我的解决方法(这比仅安装JDK还要复杂一些)

  1. Install the JDK. 安装JDK。 I put it in C:\\jdk1.7.0 我把它放在C:\\ jdk1.7.0
  2. Use lein-localrepo to install it as a local jar as follows: 使用lein-localrepo将其安装为本地jar,如下所示:
  3. Add :plugins [[lein-localrepo "0.4.0"]] to your user profile in .lein\\profiles.clj :plugins [[lein-localrepo "0.4.0"]]到您的.lein\\profiles.clj用户配置.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. Make sure lein-localrepo can find the jar. 确保lein-localrepo可以找到罐子。 lein localrepo list | grep jdi lein localrepo list | grep jdi should show: com.sun.jdi.VirtualMachine (1.7.0) lein localrepo list | grep jdi应该显示: com.sun.jdi.VirtualMachine (1.7.0)
  7. Add :dependencies [[com.sun.jdi.VirtualMachine "1.7.0"]] to your user profile :dependencies [[com.sun.jdi.VirtualMachine "1.7.0"]]到用户配置文件
  8. lein deps
  9. In emacs, nrepl-ritz-jack-in should now work correctly 在emacs中, nrepl-ritz-jack-in现在应该可以正常工作

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM