Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';t在Windows上运行emacs ensime_Windows_Emacs_Ensime - Fatal编程技术网

can';t在Windows上运行emacs ensime

can';t在Windows上运行emacs ensime,windows,emacs,ensime,Windows,Emacs,Ensime,当我点击M-x并写“ensime”时,我得到一个错误 `flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'. 'let: Wrong type argument: arrayp, nil' 当我在emacs中出现“require ensime”时,它告诉了我更多的东西: Debugger entered--Lisp error: (wrong-type-argument array

当我点击M-x并写“ensime”时,我得到一个错误

    `flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.
    'let: Wrong type argument: arrayp, nil'
当我在emacs中出现“require ensime”时,它告诉了我更多的东西:

Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
file-truename(nil)
(let ((java (file-truename (executable-find "javac")))) (warn "JDK_HOME and JAVA_HOME are not       set, inferring from %s" java) (ensime--parent-dir (ensime--parent-dir java)))
 (cond ((getenv "JDK_HOME")) ((getenv "JAVA_HOME")) ((file-exists-p "/usr/libexec/java_home") (s-chomp (shell-command-to-string "/usr/libexec/java_home"))) ((quote t) (let ((java (file-truename      (executable-find "javac")))) (warn "JDK_HOME and JAVA_HOME are not set, inferring from %s" java)     (ensime--parent-dir (ensime--parent-dir java)))))
  eval((cond ((getenv "JDK_HOME")) ((getenv "JAVA_HOME")) ((file-exists-p "/usr/libexec/java_home") (s-chomp (shell-command-to-string "/usr/libexec/java_home"))) ((quote t) (let ((java (file-truename (executable-find "javac")))) (warn "JDK_HOME and JAVA_HOME are not set, inferring from %s" java) (ensime--parent-dir (ensime--parent-dir java))))))
 custom-initialize-reset(ensime-default-java-home (cond ((getenv "JDK_HOME")) ((getenv "JAVA_HOME")) ((file-exists-p "/usr/libexec/java_home") (s-chomp (shell-command-to-string "/usr/libexec/java_home"))) ((quote t) (let ((java (file-truename (executable-find "javac")))) (warn "JDK_HOME and JAVA_HOME are not set, inferring from %s" java) (ensime--parent-dir (ensime--parent-dir java))))))
  custom-declare-variable(ensime-default-java-home (cond ((getenv "JDK_HOME")) ((getenv "JAVA_HOME")) ((file-exists-p "/usr/libexec/java_home") (s-chomp (shell-command-to-string "/usr/libexec/java_home"))) ((quote t) (let ((java (file-truename (executable-find "javac")))) (warn "JDK_HOME and JAVA_HOME are not set, inferring from %s" java) (ensime--parent-dir (ensime--parent-dir java))))) "Location of the JDK's base directory" :type string :group ensime-server)
  eval-buffer(#<buffer  *load*-216581> nil "c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime-vars.el" nil t)  ; Reading at buffer position 2344
  load-with-code-conversion("c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime-vars.el" "c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime-vars.el" nil t)
 require(ensime-vars)
  eval-buffer(#<buffer  *load*-524611> nil "c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime.el" nil t)  ; Reading at buffer position 1766
  load-with-code-conversion("c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime.el" "c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime.el" nil t)
  require(ensime)
  eval-buffer(#<buffer  *load*> nil "c:/Users/leokr_000/AppData/Roaming/_emacs" nil t)  ; Reading at buffer position 220
  load-with-code-conversion("c:/Users/leokr_000/AppData/Roaming/_emacs"               "c:/Users/leokr_000/AppData/Roaming/_emacs" t t)
   load("~/_emacs" t t)
   #[0 "\205\262
调试器已输入--Lisp错误:(错误的类型参数arrayp nil)
文件truename(无)
(let((java(文件truename(可执行文件find“javac”)))(警告“未设置JDK_HOME和java_HOME,根据%s”java推断)(ensime--parent dir(ensime--parent dir java)))
(cond((getenv“JDK_HOME”)((getenv“JAVA_HOME”))((file-exists-p)/usr/libexec/JAVA_HOME”)(s-chomp(shell命令到字符串)/usr/libexec/JAVA_HOME”))((引号t)(let((JAVA(文件truename(可执行文件find“javac”))))(警告“JDK_HOME和JAVA_HOME未设置,从%s“JAVA”推断)(ensime--parent dir
eval((cond((getenv“JDK_HOME”)((getenv“JAVA_HOME”))((file-exists-p“/usr/libexec/JAVA_HOME”)(s-chomp(shell命令到字符串“/usr/libexec/JAVA_HOME”))((引号t)(let((JAVA(文件truename(可执行文件find“javac”))))(警告“JDK_HOME和JAVA_HOME未设置,从%s”JAVA推断)(ensime——parent dir(ensime——parent dir——parent-JAVA‘)’))))
自定义初始化重置(ensime default java home(cond((getenv“JDK_home”))((getenv“java_home”)((file-exists-p)/usr/libexec/java_home)(s-chomp(shell命令到字符串)/usr/libexec/java_home))((引号t)(let((java(文件truename(可执行文件find“javac”))))(警告“JDK_home和java_home未设置,由%s”java推断)(ensime——父目录
自定义声明变量(ensime default java home(cond((getenv“JDK_home”))((getenv“java_home”)((file-exists-p)/usr/libexec/java_home”)(s-chomp(shell命令到字符串)/usr/libexec/java_home”)((引号t)(let((java(文件truename(可执行文件find“javac”))))(警告“JDK_home和java_home未设置,从%s”java推断)(ensime--parent dir(ensime--parent dir java()(())))“JDK基本目录的位置”:类型字符串:组ensime服务器)
评估缓冲区(#nil“c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime vars.el“nil t);缓冲区位置2344处的读数
加载代码转换(“c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime vars.el”“c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime vars.el”无)
需要(ensime变量)
评估缓冲区(#nil“c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime.el“nil t);在缓冲区位置1766处读取
加载代码转换(“c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime.el”“c:/Users/leokr_000/AppData/Roaming/.emacs.d/elpa/ensime-20141007.246/ensime.el”无)
需要(ensime)
评估缓冲区(#nil“c:/Users/leokr_000/AppData/Roaming/_emacs”nil t);在缓冲区位置220处读取
加载代码转换(“c:/Users/leokr\u 000/AppData/Roaming/\u emacs”c:/Users/leokr\u 000/AppData/Roaming/\u emacs”t)
加载(“~/\u emacs”t)
#[0 "\205\262
这个“_emacs”文件实际上是从这里复制的
我正在运行Windows 8和emacs 24.3。

显然,Emas找不到您的
javac
可执行文件。请确保您确实在某个地方有
javac
(或
javac.exe
可能适用于您的平台),该位置列在
exec path
中。详细说明:

Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
这表示代码试图将nil视为数组(字符串也是数组)

这表示它是在使用参数
nil
调用
file truename
时发生的,实际上,
file truename
将文件名(字符串)作为参数,因此
nil
不是它的有效参数

(let ((java (file-truename (executable-find "javac"))))
这表示它发生在计算该代码时,我们看到
文件truename
的arg实际上是
(可执行文件find“javac”)
返回的值,该表达式应该返回
javac
的绝对文件名(如
exec path
中所示),如果找不到,则返回nil

(let ((java (file-truename (executable-find "javac"))))