为什么jEdit不能使用'open'Unix命令?

时间:2010-08-25 03:54:23

标签: macos shell terminal jedit

我最近在Mac OS 10.6系统上安装了jEdit。我希望能够在终端中运行jEdit,就像我的emacs,即'emacs FILE.NAME'。我的计划是编写一个包含...

的脚本jedit.sh
touch $1
open -a /Applications/jEdit.app $1

...参数是文件名。奇怪的是,jEdit是打开的,但只能使用默认的新文件,而不是所需的文件。如果我将'jEdit.app'替换为任何其他应用程序,例如'TextEdit.app',它会打开所需的文件。

有什么我想念的吗?为什么jEdit在与'open'命令一起使用时不像其他应用程序那样行事,我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

首先,'open'不是标准的UNIX命令(我假设它是特定于Mac OS X的东西?)。

此外,jEdit是用Java编写的,所以我假设jEdit.app只是一个启动Java VM来执行jedit.jar的包装器(它运行/path/to/java -jar /path/to/jedit.jar或类似的东西,可能有额外的内存选项用法等。)。

在我的Ubuntu系统上,jedit包装器脚本传递我在命令行中提到的任何文件,并且jEdit有效地使用它,因此问题不在于jEdit应用程序本身。

结论:看起来jEdit.app没有把你给它的参数传递给java命令行......

作为解决方案,请尝试从脚本中java -jar /path/to/jedit.jar "$@"启动它(AFAIK也不需要touch行。)

答案 1 :(得分:2)

这适用于jEdit 5.1.0:

touch foo
open -a /Applications/jEdit.app foo

答案 2 :(得分:0)

转到实用工具>全局选项>一般

取消选中启动时恢复以前打开的文件(在此之前,我确保选中'在命令行中指定的包含文件名...')

我知道,这很奇怪,但这对我有用(mac os x snow leopard,jedit 4.3.2,java 1.6.0_22)