我正在尝试为我即将开始的 Java 项目设置 Emacs+JDEE,但我无法让 JDEE 正常工作。我想要解决的第一个问题是能够跳转到给定类名的源文件。我正在使用卡桑德拉 http://cassandra.apache.orgsource 作为我使用 JDEE 的游乐场。
我已经设置了一个新的 Ubuntu 12.04 VM,并使用 Emacs 23.3.1 作为我的测试环境。我在用着openjdk-1.6
来自默认的 Ubuntu 存储库,JDEE 似乎正在使用它。我下载了jdee tar ball并将其解压到~/.emacs.d
。 Cassandra 源代码树已检出到~/cassandra
. My ~/.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
,然后在当前目录中。所以也许你需要设置这些变量。
我在这里发布我的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))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)