如何配置jdee`find-class-source-file`以使用Cassandra源代码树?

use*_*275 6 java emacs jdee

我正在尝试为即将开始的Java项目设置Emacs + JDEE,但是我无法让JDEE正常工作.我想要解决的第一个问题是能够跳转到给定类名的源文件.我正在使用Cassandra源作为我与JDEE合作的游乐场.

我用Emacs 23.3.1设置了一个新的Ubuntu 12.04虚拟机作为我的测试环境.我正在使用openjdk-1.6默认的Ubuntu存储库,JDEE似乎正在使用它.我下载了jdee tar球并将其解压缩~/.emacs.d.Cassandra源代码树结帐~/cassandra.我~/.emacs.d/init.el的成员如下:

(setq jde-sourcepath '("~/cassandra/src/java"))
(add-to-list 'load-path "~/.emacs.d/jdee-2.4.1/lisp")
(load "jde")
Run Code Online (Sandbox Code Playgroud)

当我打开时,~/cassandra/src/java/org/apache/cassandra/db/ColumnFamily.java我希望能够跳到课堂上org.apache.cassandra.config.CFMetaData.当我运行jde-open-class-at-point该类名时,我收到以下错误:

Cannot determine the class of "CFMetaData".
Run Code Online (Sandbox Code Playgroud)

同样,如果我跑

(jde-find-class-source "org.apache.cassandra.config.CFMetaData")
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

jde-read-class: No match for CFMetaData
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能让JDEE找到源文件?

son*_*yao 4

我不确定到底出了什么问题,但根据文档,jde-open-class-at-point首先在 中搜索源文件jde-sourcepath,然后在 中jde-global-classpath,然后在 中$CLASSPATH,然后在当前目录中搜索源文件。所以也许您需要设置这些变量。

我在这里发布我的jdee设置,希望它能有所帮助:(它对我来说效果很好)

.emacs

(add-to-list 'load-path "~/.emacs.d/plugins/jdee-2.4.1/lisp")
(autoload 'jde-mode "jde" "JDE mode" t)
(setq auto-mode-alist
      (append '(("\\.java\\'" . jde-mode)) auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)

prj.el对每个项目都使用:

prj.el

(jde-project-file-version "1.0")
(jde-set-variables
 '(jde-jdk-registry (quote (("1.6" . "/usr/java/jdk1.7.0_51"))))
 '(jde-jdk (quote ("1.6")))
 '(jde-xref-db-base-directory "./xrefdb")
 '(jde-xref-store-prefixes (quote ("")))
 '(jde-build-function (quote jde-ant-build))
 '(jde-ant-enable-find t)
 '(jde-sourcepath (quote ("./src")))
 '(jde-built-class-path (quote ("./bin")))
 '(jde-global-classpath (quote ("./bin" "./src" "./lib")))
 '(jde-electric-return-p t)
 '(jde-enable-abbrev-mode t))
Run Code Online (Sandbox Code Playgroud)