Java JDEE找不到JDK';OSX上的工具jar文件

Java JDEE找不到JDK';OSX上的工具jar文件,java,macos,emacs,jdee,Java,Macos,Emacs,Jdee,我正在尝试在OS X上配置emacs 24。 当我创建一个.java文件时,环境似乎是自动加载的(请参见图片),因此它似乎安装正确。但是,当我尝试使用M-x jde complete (我还没有将其绑定到任何密钥)我收到以下消息: 找不到JDK的tools jar文件(或等效文件)。请键入M-x 有关更多信息,请描述函数[RET]jde get jdk dir 我运行了/usr/libexec/java\u home来找到我的java home,并在我的~/.bash\u配置文件中设置它: ex

我正在尝试在OS X上配置emacs 24。 当我创建一个.java文件时,环境似乎是自动加载的(请参见图片),因此它似乎安装正确。但是,当我尝试使用
M-x jde complete
(我还没有将其绑定到任何密钥)我收到以下消息:

找不到JDK的tools jar文件(或等效文件)。请键入M-x 有关更多信息,请描述函数[RET]jde get jdk dir

我运行了
/usr/libexec/java\u home
来找到我的java home,并在我的
~/.bash\u配置文件中设置它:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home"
然后我在
~/.emacs
中将JDEE配置为指向JDK:

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(jde-jdk (quote ("1.7.0_17")))
 '(jde-jdk-registry (quote (("1.7.0_17" . "/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home")))))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )
有人能告诉我为什么自动完成不起作用吗?我相信我的jdeei设置的任何部分目前都没有工作,但是,我使用自动完成来测试,因为这是我开始工作的主要优势

更新:如果我使用
M-xjde compile
它会说

JDE不识别JDK1.7JavaC。假设JDK1.6JavaC?(是或否)

它似乎找到了我的JDK。如果我键入yes,它将给出相同的错误
(找不到JDK的tools jar文件(或等效文件)

我遵循了这一点,现在它可以工作了。我认为他们的关键是添加两个JDK,然后选择一个您希望使用的JDK。看来JDEE可能无法只添加一个JDK。
但是,现在我遇到了错误“无法在此终端上放置GUI菜单”,但我想这是另一个问题。

您可以使用新的CEDET并按照中所述进行设置。自2012年11月/12月以来,CEDET改进了对Java的支持,包括名称完成,包括自动检测JDK(在Linux和Mac OS X上测试),plus为maven和ant提供了基本的EDE项目(对于maven,EDE可以提取依赖项列表,并使用它们来构建名称完成)

以下是Maven项目名称完成的示例:


对于Mavericks上的JDK 1.7,Aquamacs 2.5,JDE 2.4.0.1

JDE正在JAVA_HOME下寻找“Classes/Classes.jar”(当它试图找到“lib/tools.jar”的达尔文等价物时)

您可以通过创建如下别名来帮助它:

sudo mkdir /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/Classes
sudo ln -sfv /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib/tools.jar /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/Classes/classes.jar
重新启动emacs,完成应该会起作用


有一个更新的JDE 2.4.1,我没有尝试过

我认为这是正确的解决方案。Oracle更改了JDK的结构,我认为这是解决基于classes.jar以前位置的假设的工具的最干净的方法