Comment 1 for bug 234690

Revision history for this message
Reinhard Tartler (siretart) wrote : Re: 54jde.el registers wrong java version

As quick reference, here the code for 'debian-jde-register-jdks' as of version 2.3.5.1-4ubuntu1:

  ;; Register all available JDKs on the system
  (defun debian-jde-register-jdks ()
    "Register all available JDKs automatically given the output of
update-java-alternatives."
    (when (file-executable-p "/usr/sbin/update-java-alternatives")
      (with-temp-buffer
        (shell-command "/usr/sbin/update-java-alternatives --list" t)
        (goto-char (point-min))
        (let (jdks)
          (while (and (< (point) (point-max))
                      (looking-at
                       "\\([^ \n]+\\) \\([^ \n]+\\) \\([^ \n]+\\)$"))
            (let ((name (match-string 1))
                  (version (match-string 2))
                  (jdk-path (match-string 3)))
              (when (string-match "\\`[0-9]\\{4\\}\\'" version)
                (setq version (concat
                               (substring version 0 1) "."
                               (number-to-string
                                (string-to-number (substring version 1 3)))
                               "." (substring version 3 4))))
              (add-to-list 'jdks (cons version jdk-path)))
            (forward-line 1))
          (jde-set-jdk-dir-type 'jde-jdk-registry (nreverse jdks))))))
  (debian-jde-register-jdks))