2013-03-23 4 views
2

Я пытаюсь настроить JDEE для emacs 24 на OS X. Когда я создаю файл .java, среда, кажется, загружается автоматически (см. Рисунок), поэтому похоже, правильно установлена. Однако, когда я пытаюсь автозаполнение что-нибудь с помощью M-x jde-complete (я не обязан это всех ключей, пока) я получаю следующее сообщение:JDEE не может найти JAR-файл JDK на OS X

Не могу найти инструменты банки файл JDK (или эквивалент) .Type Mx описать-функцию [RET] jde-get-jdk-dir для получения дополнительной информации.

Я побежал /usr/libexec/java_home, чтобы найти мой Java дом и установить это в моем ~/.bash_profile:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home" 

Затем я настроил JDEE, чтобы указать на JDK в ~/.emacs:

(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. 
) 

Может кто-нибудь сказать мне, почему автозаполнение не работает? Я считаю, что в настоящее время ни одна часть моей настройки JDEE i не работает, однако я использую автозавершение для тестирования, поскольку это моя основная задача, чтобы работать.

Update: Если я использую M-x jde-compile он говорит

JDE не признает JDK 1.7 JAVAC. Предположим, JDK 1.6 javac? (Да или нет)

Кажется, что он находит мой JDK. Если я напечатаю да, это даст ту же ошибку (Cannot find JDK's tools jar file (or equivalent).

enter image description here

ответ

1

Я последовал this guide и теперь он работает. Я думаю, что они должны были добавить два JDK, а затем выбрать тот, который вы хотите использовать. Кажется, что JDEE может не работать с добавлением только одного JDK. Однако теперь я получаю сообщение об ошибке «Не могу поместить меню GUI на этот терминал», но я думаю, это другой вопрос.

1

Вы можете взять новый CEDET и настроить его, как описано в this guide. С ноября/декабря 2012 года CEDET улучшила поддержку Java, включая завершение имен, включая автоматическое обнаружение JDK (протестировано в Linux и Mac OS X), плюс имеет базовые проекты EDE для maven и ant (для Maven, EDE может извлечь список зависимостей , и использовать их для завершения создания имени).

Вот пример завершения имен для проекта Maven:

enter image description here

1

Для JDK 1.7 на Mavericks, Aquamacs 2.5, JDE 2.4.0.1

JDE ищет «Классы/classes.jar «под JAVA_HOME (когда он пытается найти эквивалент darwin для« 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, что я не пробовал

+0

I подумайте, что это правильное решение. Oracle изменила структуру JDK, и я думаю, что это самый чистый способ решить эту проблему для инструментов, которые имеют допущения, основанные на предыдущем местоположении classes.jar –

Смежные вопросы