2011-10-20 47 views
18

Tôi đang cố gắng khởi chạy IntelliJ trên dòng lệnh trong Mac OS X để sử dụng công cụ khác biệt của nó. Về mặt lý thuyết, idea.sh diff file1 file2 sẽ hoạt động. Trong thực tế có một số vấn đề với các tập tin mà tôi nghĩ rằng tôi đã làm việc xung quanh (loại bỏ một số đối số để readlink vv).
Tuy nhiên khi nó bắt đầu, nó muốn tôi nhập thông tin giấy phép (mặc dù một thể hiện của Intellij đã chạy và giấy phép có). Điều gì khiến tôi tin rằng có một số loại thế giới dòng lệnh tách biệt so với thế giới không có dòng lệnh trên Mac OS X? IS có đúng không?
Ngoài ra khi tôi chọn 30 ngày eval nó tiến để cung cấp cho tôi những ngoại lệ sau đây:dòng lệnh IntelliJ trên Mac OS X

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

Trả lời

20

Thử chạy /Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea để thay thế. idea.sh không được thiết kế cho Mac và sẽ không hoạt động nếu không có một số thay đổi thủ công.

+0

Đó là tốt hơn - không có vấn đề giấy phép, nhưng nó vẫn mang lại cho tôi những lỗi tương tự (trong một hộp thoại hiện nay): Lỗi khi hiển thị khác: Đối số 0 cho @NotNull tham số của com/IntelliJ/openapi/fileEditor/impl/FileEditorProviderManagerImpl.getProviders không được rỗng –

+0

ah, đừng bận tâm, tập tin cần phải có phần mở rộng! –

+0

vì vậy điều này làm việc cho khác biệt, nhưng tôi muốn gọi chức năng hợp nhất (có thể lưu sau khi giải quyết xung đột). Điều này có thể thực hiện được không? –

6

Ý tưởng mong đợi đường dẫn đủ điều kiện, vì vậy tôi đã viết một tập lệnh trợ giúp nhỏ. Gọi như:

$ idiff foo.txt bar.txt 

Mã cho idiff:

#!/bin/bash 
idea='/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea' 
left=`abspath $1` 
right=`abspath $2` 
"$idea" diff $left $right 

Có lẽ là một abspath công cụ thực ở đâu đó, nhưng tôi có một đơn giản cuộn bằng tay một:

$ 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 
52

IntelliJ thể cài đặt một trình khởi chạy dòng lệnh cho bạn, thêm nó vào thư mục PATH sẽ làm cho nó như bất kỳ lệnh nào khác trên hệ thống. Lệnh này là "ý tưởng".

IntelliJ Command-line Launcher