Почему jEdit не работает с «открытой» командой Unix? - PullRequest
0 голосов
/ 25 августа 2010

Я недавно установил jEdit в моей системе Mac OS 10.6.Я хотел бы иметь возможность запускать jEdit в терминале, как я бы emacs, то есть 'emacs FILE.NAME'.Я планировал написать скрипт jedit.sh, содержащий ...

touch $1
open -a /Applications/jEdit.app $1

... где аргумент - это имя файла.Как ни странно, jEdit открывается, но только с новым файлом по умолчанию, а не с нужным файлом.Если я заменю «jEdit.app» на любое другое приложение, скажем «TextEdit.app», оно откроет нужный файл.

Есть ли что-то, чего мне не хватает?Почему jEdit не работает как другие приложения при использовании команды open и как я могу обойти это?

Ответы [ 3 ]

2 голосов
/ 14 января 2014

Это работает для меня на jEdit 5.1.0:

touch foo
open -a /Applications/jEdit.app foo
2 голосов
/ 25 августа 2010

Прежде всего, «open» не является стандартной командой UNIX (я полагаю, это что-то специфичное для Mac OS X?).

Кроме того, jEdit написан на Java, поэтому я предполагаю, что jEdit.appпросто оболочка, запускающая виртуальную машину Java для выполнения jedit.jar (она запускает /path/to/java -jar /path/to/jedit.jar или что-то в этом роде, возможно, с дополнительными опциями для использования памяти и т.передает любой файл, который я упоминаю в командной строке, и jEdit эффективно использует его, поэтому проблема не в самом приложении jEdit.

Вывод: похоже, что jEdit.app не принимает параметры, которые выдайте ему передать их в командную строку java ...

В качестве решения попробуйте запустить его как java -jar /path/to/jedit.jar "$@" из вашего скрипта (AFAIK нет необходимости в строке touch).

0 голосов
/ 21 октября 2010

Перейти к Утилиты> Глобальные параметры> Общие

Снимите флажок Восстановить ранее открытые файлы при запуске (перед этим я проверил «включить имена файлов, указанные в командной строке ...»)

Я знаю, это странно, но у меня это сработало (Mac OS X Snow Leopard, Jedit 4.3.2, Java 1.6.0_22)

...