2014-02-13 2 views
5

Я пытаюсь настроить Emacs + JDEE для проекта Java, о котором я собираюсь начать, но у меня проблемы с работой JDEE. Первое, что я хочу решить, это возможность перейти к исходному файлу заданного имени класса. Я использую источник Cassandra как свою площадку для работы с JDEE.Как настроить jdee `find-class-source-file` для работы с исходным деревом Cassandra?

Я установил новую Ubuntu 12.04 VM с Emacs 23.3.1 в качестве тестовой среды. Я использую openjdk-1.6 из репозитория Ubuntu по умолчанию, и JDEE, похоже, его использует. Я загрузил jdee tar ball и извлек его в ~/.emacs.d. Деревом исходных текстов Кассандры является проверка на ~/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 для поиска исходных файлов?

ответ

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)) 

И я использую 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))