我正在尝试在Mac OS X的命令行上启动IntelliJ以使用它的diff工具。理论上idea.sh diff file1 file2
应该有用。在实践中,我认为我处理过的文件存在一些问题(删除一些readlink等参数)
但是当它启动时,它希望我输入许可证信息(即使Intellij的实例已在运行并且许可证在那里)。这让我相信Mac OS X上的命令行界与非命令行界有某种分离?这是真的吗?
此外,当我选择30天eval时,它继续给我以下例外:
java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/intellij/openapi/fileEditor/impl/FileEditorProviderManagerImpl.getProviders must not be null
at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.getProviders(FileEditorProviderManagerImpl.java)
at com.intellij.openapi.diff.impl.highlighting.EditorPlaceHolder.setContent(EditorPlaceHolder.java:73)
at com.intellij.openapi.diff.impl.highlighting.DiffPanelState$1.run(DiffPanelState.java:38)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:864)
...
答案 0 :(得分:104)
答案 1 :(得分:21)
尝试改为运行/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea
。 idea.sh
不适用于Mac,如果不进行一些手动更改,则无法使用。
答案 2 :(得分:12)
尝试:
工具>创建命令行启动器
这将创建一个命令行启动器。 之后,您可以从所需的文件夹启动IntelliJ,就像这样的命令:
idea .
或
idea <path to the folder>
答案 3 :(得分:6)
Idea希望路径完全合格,所以我写了一个小帮手脚本。调用如:
$ idiff foo.txt bar.txt
idiff
的代码:
#!/bin/bash
idea='/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea'
left=`abspath $1`
right=`abspath $2`
"$idea" diff $left $right
某处可能有一个真正的abspath
工具,但我有一个简单的手工工具:
$ cat `which abspath`
#!/bin/bash
ORIG_DIR=`pwd`
for fn in $* ; do
if [ -e $fn ]; then
d=`dirname $fn`
if [ -z $d ]; then
echo `pwd`/$fn
else
cd $d
echo `pwd`"/"`basename $fn`
fi
else
echo "Don't know how to process $fn" 1>&2
exit 1
fi
cd $ORIG_DIR
done
答案 4 :(得分:3)
第一步,您将遵循并单击菜单,工具>创建命令行启动器,然后在要打开项目目录的目录上运行此命令。
idea .
答案 5 :(得分:0)