遵循emacs-eclim的安装指南后,我想通过“start-eclimd”启动 eclimd,但在 Mini-Buffer 中弹出以下错误消息。
Symbol 作为变量的值是 void:eclimd-port
Eclimd 脚本在 eclipse 中启动时可以完美运行。
在 shell 中运行脚本会给我以下错误:
您的 jvm 不支持您安装的 eclipse 版本所需的体系结构:-d32
我的Java版本:
java version "1.7.0_21" OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
这是 64 位问题吗?
我只想控制 emacs 中的守护进程或至少控制脚本。这些行在我的 .emacs 中是相关的:
;; Eclim - eclipse interface for emacs
(require 'eclim)
(global-eclim-mode)
(require 'eclimd)
完整的堆栈跟踪:
Debugger entered--Lisp error: (void-variable eclimd-port)
(let ((eclimd-start-regexp "Eclim Server Started on\\(?: port\\|:\\) \\(?:\\(?:[0-9]+\\.\\)\\{3\\}[0-9]+:\\)?\\([0-9]+\\)")) (save-match-data (let ((output (eclimd--match-process-output eclimd-start-regexp eclimd-process))) (when output (setq eclimd-port (match-string 1 output)) (message (concat "eclimd serving at port " eclimd-port))))) eclimd-port)
wait-eclimd-start()
(progn (wait-eclimd-start))
(if eclimd-wait-for-process (progn (wait-eclimd-start)))
(when eclimd-wait-for-process (wait-eclimd-start))
(if (eclimd--running-p) (message "Cannot start eclimd: eclimd is already running.") (message (concat "Starting eclimd for workspace: " workspace-dir "...")) (setq eclimd-process-buffer (make-comint eclimd-process-buffer-name eclimd-prog nil (concat "-Dosgi.instance.area.default=" (replace-regexp-in-string "~" "@user.home" workspace-dir)))) (setq eclimd-process (get-buffer-process eclimd-process-buffer)) (when eclimd-wait-for-process (wait-eclimd-start)))
(if (not eclimd-prog) (message "Cannot start eclimd: check eclimd-executable variable.") (if (eclimd--running-p) (message "Cannot start eclimd: eclimd is already running.") (message (concat "Starting eclimd for workspace: " workspace-dir "...")) (setq eclimd-process-buffer (make-comint eclimd-process-buffer-name eclimd-prog nil (concat "-Dosgi.instance.area.default=" (replace-regexp-in-string "~" "@user.home" workspace-dir)))) (setq eclimd-process (get-buffer-process eclimd-process-buffer)) (when eclimd-wait-for-process (wait-eclimd-start))))
(let ((eclimd-prog (eclimd--executable-path))) (if (not eclimd-prog) (message "Cannot start eclimd: check eclimd-executable variable.") (if (eclimd--running-p) (message "Cannot start eclimd: eclimd is already running.") (message (concat "Starting eclimd for workspace: " workspace-dir "...")) (setq eclimd-process-buffer (make-comint eclimd-process-buffer-name eclimd-prog nil (concat "-Dosgi.instance.area.default=" (replace-regexp-in-string "~" "@user.home" workspace-dir)))) (setq eclimd-process (get-buffer-process eclimd-process-buffer)) (when eclimd-wait-for-process (wait-eclimd-start)))))
start-eclimd("~/workspace")
call-interactively(start-eclimd t nil)
execute-extended-command(nil)
call-interactively(execute-extended-command nil nil)