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

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

我用Emacs 23.3.1设置了一个新的Ubuntu 12.04 VM作为我的测试环境。 我在默认的Ubuntu存储库中使用openjdk-1.6 ,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") 

当我打开~/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". 

同样,如果我跑

 (jde-find-class-source "org.apache.cassandra.config.CFMetaData") 

我收到此错误:

 jde-read-class: No match for CFMetaData 

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

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

我在这里发布我的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)) 

我为每个项目使用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))