Мне удалось решить проблему, сначала я использовал этот файл:
http://download-mirror.savannah.gnu.org/releases/geiser/0.10/geiser-0.10 .tar.gz
Он сломан, я всегда получаю:
"csi exited with status 70"
Итак, я скачал версию git:
git clone git://git.sv.gnu.org/geiser.git
Так что я пытаюсь начать the geise:
M-x run-geiser RET chicken RET
И я получаю ошибку:
"car: Symbol’s function definition is void: seq-filter"
Тогда что-то происходит в файле "geiser / elisp / geiser-chicken.el", они забыли добавьте строку:
(require 'seq)
Теперь это работает.
! Важно: В emacs < = версия 24 "seq-filter" даже не существует. Я не знаю точную версию, в которую был добавлен «seq-filter», из того, что я видел в документации Emacs, не документировано версией, по крайней мере, я ее не нашел, поэтому не очень хорошо знаю, но она была протестирована что в Emacs 24 такой библиотеки нет.
Кажется этим, если Вы не можете использовать java.awt.Desktop
необходимо различать Ose: Windows:
RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL <file.ext>
Linux:
edit <file.ext>
Mac:
open <file.ext>
HTH. Очевидно, это не очень портативно...
Проверьте java.awt. Объект рабочего стола. В Вашем случае Вы хотите вызвать edit()
Если Вы хотите удостовериться, что данный поддержка платформ этот вызов, то можно сделать что-то как следующее (я не протестировал этот код):
public boolean editFile(final File file) {
if (!Desktop.isDesktopSupported()) {
return false;
}
Desktop desktop = Desktop.getDesktop();
if (!desktop.isSupported(Desktop.Action.EDIT)) {
return false;
}
try {
desktop.edit(file);
} catch (IOException e) {
// Log an error
return false;
}
return true;
}
Это не является межплатформенным, но на Mac OS X можно сделать
Runtime.getRuntime().exec("open filename");
open(1)
исполняемый файл использует LaunchServices для выбора правильной программы для выполнения и затем использует это для открытия названного файла filename
.