我正试图为即将开始的Emacs+JDEE项目进行Emacs+JDEE设置,但我在使JDEE正常工作时遇到了困难。我想要解决的第一个问题是能够跳转到给定类名的源文件。我正在使用Cassandra源代码作为使用JDEE的操场。
我设置了一个新的Ubuntu12.04VM,使用Emacs23.3.1作为我的测试环境。我使用的是默认Ubuntu存储库中的openjdk-1.6,JDEE似乎正在使用它。我下载了jdee焦油球并将其解压缩到~/.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找到源文件,我需要做什么?
发布于 2014-03-24 02:35:23
我不知道到底出了什么问题,但是根据文档,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))对于每个项目,我都使用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))https://stackoverflow.com/questions/21762513
复制相似问题