The JDEE is an add-on software package that turns Emacs into a comprehensive system for creating, editing, debugging, and documenting Java applications.
Emacs Lisp Other
Switch branches/tags
Nothing to show
Clone or download
Daniels, Troy
Latest commit 9192578 Jul 11, 2018
Permalink
Failed to load latest commit information.
doc jdee.texi: fix indentation Mar 18, 2017
test Add tests and rename function to match its var. Jan 9, 2018
vagrant Add python-software-properties Mar 16, 2016
.dir-locals.el Use spaces to have consistent formatting Aug 15, 2015
.ert-runner Add Makefile to ease usage Aug 16, 2015
.gitignore Ignore TAGS file generated by etags Mar 18, 2017
.travis.yml Remove Emacs 26.1 from the build Jun 8, 2018
CHANGES.md Description of changes between JDEE@SF and JDEE@GH Dec 22, 2015
Cask Remove package deps from dev-deps Nov 9, 2016
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md Oct 3, 2017
LICENSE Initial commit Jul 13, 2015
Makefile Remove run-jde target and add --debug to print stacktraces. Jan 7, 2017
README.md Remove link to dead mailing lists Jun 8, 2018
Vagrantfile Update path to ubuntu box Mar 3, 2017
beanshell.el Fix beanshell jar help message Feb 18, 2018
efc.el Use cl functions/macros instead of cl.el Sep 19, 2015
jcomplete.el Extract Bsh interactions to separate file. Dec 5, 2016
jdee-abbrev.el Extract functionalities from jdee.el to separate packages. Jan 7, 2017
jdee-activator.el Move JDEE activation/deactivation to separate file. Jan 8, 2017
jdee-annotations.el Rename jde to jdee to conform to packaging rules Aug 21, 2015
jdee-ant.el Quote ant.home path with ". Sep 26, 2017
jdee-archive.el Move jdee-global-classpath to jdee-classpath.el Jan 8, 2017
jdee-avl-tree.el Correct type of AVL tree - fixes #137. Jun 7, 2018
jdee-backend.el Reuse code. May 6, 2017
jdee-bookmark.el Move jdee-assert-mode to jdee-util. Jan 8, 2017
jdee-bsh.el Don't expose lower level functions to users. May 6, 2017
jdee-bug.el Move file handling to jdee-files. Jan 8, 2017
jdee-bytecode.el Rename jdee-parse-class to jdee-bytecode. Jun 24, 2016
jdee-checkstyle.el patch to workround a checkstyle bug Oct 2, 2017
jdee-class.el Move file handling to jdee-files. Jan 8, 2017
jdee-classpath.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee-compile.el Add minimal support for java 10 compiler. Jul 11, 2018
jdee-complete.el Extract Bsh interactions to separate file. Dec 5, 2016
jdee-custom.el Correct docs and reformat. Jan 6, 2017
jdee-cygwin.el Extract functionalities from jdee.el to separate packages. Jan 7, 2017
jdee-db.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee-dbo.el Remove xemacs support Sep 12, 2015
jdee-dbs.el Move jdee-build-classpath to jdee-classpath.el Jan 8, 2017
jdee-deps.el Extract functionalities from jdee.el to separate packages. Jan 7, 2017
jdee-ecj-flymake.el Remove jdee-create-prj-values-str and use jdee-backend instead. Jan 8, 2017
jdee-ejb.el Rename jde to jdee to conform to packaging rules Aug 21, 2015
jdee-files.el Move file handling to jdee-files. Jan 8, 2017
jdee-find.el Move jdee-global-classpath to jdee-classpath.el Jan 8, 2017
jdee-flycheck.el Call flycheck callback in case of failures. Jan 22, 2017
jdee-font-lock.api Remove duplicated "java" from filename Sep 7, 2015
jdee-font-lock.el Fix font lock keyword defs to not quote face names. Jan 9, 2016
jdee-gen.el Remove unused call to `with-current-buffer' - fixes #95. Jun 8, 2018
jdee-help.el Rewrite jdee-backend-url-exists-p to elisp. Mar 26, 2017
jdee-imenu.el Extract sorting setup to function. Dec 30, 2015
jdee-import.el Remove unused declarations of jdee-bsh functions. Mar 26, 2017
jdee-issues.el Remove unused declarations of jdee-bsh functions. Mar 26, 2017
jdee-java-grammar.el Remove xemacs support Sep 12, 2015
jdee-java-properties.el Remove xemacs support Sep 12, 2015
jdee-javadoc-gen.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee-javadoc.el Remove unused declarations of jdee-bsh functions. Mar 26, 2017
jdee-jdb.el Don't pass 3rd arg to thing-at-point - fixes #39. Jan 23, 2016
jdee-jdk-manager.el Make version regexp work also with Java 9. Oct 7, 2017
jdee-juci.el Extract logging to separate file. Dec 6, 2016
jdee-junit.el Move jdee-db-get-package to jdee-parse.el Jan 8, 2017
jdee-keys.el Move interaction with backend to jdee-project-file. Mar 26, 2017
jdee-log.el Extract logging to separate file. Dec 6, 2016
jdee-make.el Move file handling to jdee-files. Jan 8, 2017
jdee-maven.el Add tests and rename function to match its var. Jan 9, 2018
jdee-open-source.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee-package.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee-parse-expr.el Correct flycheck warnings and remove useless comments. Dec 4, 2016
jdee-parse.el Correct type of AVL tree - fixes #137. Jun 7, 2018
jdee-plugins.el Remove some flycheck warnings. Mar 26, 2017
jdee-project-file.el Small fixes in the code Mar 29, 2017
jdee-project.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee-refactor.el Load jdee-refactor when jdee is loaded. Fixes #60. Jun 19, 2016
jdee-run.el Move jdee-db-get-package to jdee-parse.el Jan 8, 2017
jdee-stacktrace.el Remove package headers that prevent correct installation from buffer Apr 28, 2017
jdee-stat.el Move jdee-root-dir-p to file-util and update deps. Jan 7, 2017
jdee-test.el Remove misleading docs and correct flycheck warnings. Dec 30, 2016
jdee-util.el Move jdee-assert-mode to jdee-util. Jan 8, 2017
jdee-which-method.el Correct warnings and reformat. Jan 9, 2017
jdee-widgets.el Remove JDEbug from available debuggers. Jan 30, 2016
jdee-wiz.el Move interaction with backend to jdee-project-file. Mar 26, 2017
jdee-xref.el Move jdee-sourcepath to jdee-classpath.el Jan 8, 2017
jdee.el Add s.el to project dependencies. Sep 26, 2017
jtags Move lisp files to top directory Aug 14, 2015
jtags.csh Move lisp files to top directory Aug 14, 2015

README.md

MELPA Build Status

JDEE

The JDEE is an add-on software package that turns Emacs into a comprehensive system for creating, editing, debugging, and documenting Java applications.

About the project

As of 2015-07-13, https://github.com/jdee-emacs/jdee/ is the primary source repository.

See CHANGES.md for migration instructions.

Additional information can be found at http://jdee.sourceforge.net/rootpage.html and at https://github.com/jdee-emacs/jdee/wiki

Requirements

Emacs 24.4 is the oldest version that JDEE can be expected to run in.

If you install JDEE through the Emacs package system, it will take care of installing the prerequisites for you:

  • flycheck
  • memoize
  • dash These packages can be found on ELPA and/or MELPA.

JDEE also requires JDEE Server for some operations.

Installing with the Emacs package system

The project is available in MELPA. To install it do the following:

  1. Add MELPA to your .emacs or init.el if you don't have it:
;;; Add this at the top of the init.el file:
(require 'package)
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(when (< emacs-major-version 24)
  ;; For important compatibility libraries like cl-lib
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)
  1. Install JDEE from Emacs using its package manager:
M-x list-packages

There select JDEE and install: i x

  1. Install JDEE Server from github

Follow short readme at JDEE Server.

  1. Customize jdee-server-dir to make it point to directory with JDEE Server jars.

Warning! Don't install JDEE Server inside JDEE installed from MELPA (~/.emacs.d/elpa/jdee-xxx), because it will be deleted with next update of JDEE! Create a separate directory, for example: ~/.emacs.d/jdee-server.

Customized jdee-server-dir in your init file should look something like:

(custom-set-variables
 '(jdee-server-dir "/Users/you/.emacs.d/jdee-server"))

For additional information, see the old installation instructions.

Installing from source (for JDEE devs only)

  1. Clone the github repository.
  2. Open the cloned JDEE directory in dired.
  3. Being in dired, install using command: package-install-from-buffer

For development you will need to install Cask:

  1. Install Cask.

  2. Run cask install from the JDEE directory (make sure that the cask command is in your PATH).

  3. Run the tests: make test

To use this built distribution without installation, in your .emacs add:

  (add-to-list 'load-path "/path/to/jdee")
  (require 'jdee)

Building the documentation in other formats

JDEE ships with documentation in Info format, but if you want you can generate the docs in other formats too.

To generate Info, HTML and PDF documentation:

  • Install texinfo.

  • For PDF generation, you also need texi2dvi, texinfo-tex, texlive-ec and texlive-cm-super.

  • In the doc/ subdirectory, run: makeinfo --info --html --pdf jdee.texi

Features

Some of the features of JDEE include:

  • source code editing with syntax highlighting, auto indentation using the native GNU Emacs Java mode
  • Symbol completion (jdee-complete-in-line)
  • Code generation: templates, import insertion/deletion/ordering etc.
  • browse JDK doc, using the browser of your choice (jdee-help-symbol and jdee-help-docsets)
  • browse your source code (jdee-find-class* and semantic integration)
  • compilation with automatic jump from error messages to responsible line in the source code using ant (jdee-ant-build).
  • run Java application in an interactive (comint) Emacs buffer
  • integrated debugging with interactive debug command buffer and automatic display of current source file/line when stepping through code (jdee-debug)
  • supports Oracle/OpenJDK Java 7
  • runs on any platform supported by GNU Emacs 24.3 and later
  • easily and infinitely customizable

Known Issues

  • Static imports don't quite work
  • Limited support for Java template beyond basic highlighting, parsing, and indenting.
  • Indentation after multi-line annotations might be unexpected

Troubleshooting

  • If you notice a bug, open an issue on Github Issues

Authors

  • Paul Kinnucan (original author and contributor)
  • Przemysław Wojnowski (primary maintainer/owner)
  • Paul Landes (maintainer)
  • Shyamal Prasad (maintainer)
  • Phil Lord (maintainer)