2016-04-26 6 views
1

IntelliJ用のプラグイン開発が初めてで、プラグインからコマンドラインでコマンドを実行する方法を知りたいと思います。IntelliJ Plugin - コンソールコマンドを実行する

たとえば、現在のプロジェクトのルートディレクトリで "gulp"コマンドを呼び出すとします。

私はすでに、「CDのC:\ Users \ユーザーユーザーの\ MyProjectと」のようなコマンドで

Runtime.getRuntime().exec(commands); 

を使用してみましたプラグインならば、そして「がぶ飲み」が、そのように動作していないようだと、私は疑問に思いますAPIは簡単な方法を提供します。

ありがとうございました。 :-)

+0

あなたのJavaプログラムから 'gulp'を呼び出したいのですか、何か他のことについて質問していますか? –

+1

@TimBiegeleisen彼はプラグインの中でIDE Ideaを求めています – Natecat

答えて

2

私は1年後(その少し遅れを知っています)、最近IntelliJプラグインを開発していましたが、同じ問題がありました。これが私の使っていたものですが、うまくいきます。

まず、我々は実行する必要があるコマンドのリストを作成する必要があります。

ArrayList<String> cmds = new ArrayList<>(); 
    cmds.add("./gradlew"); 

その後

GeneralCommandLine generalCommandLine = new GeneralCommandLine(cmds); 
    generalCommandLine.setCharset(Charset.forName("UTF-8")); 
    generalCommandLine.setWorkDirectory(project.getBasePath()); 

    ProcessHandler processHandler = new OSProcessHandler(generalCommandLine); 
    processHandler.startNotify(); 

ので、generalCommandLine.setWorkDirectoryはに相当する可能性がプロジェクトディレクトリに設定されていますターミナルコマンドcd path/to/dir/

0

Runtimeクラスは、exec(String []、String []、File)メソッドを提供します。ここで、最後の引数は起動されるサブプロセスの作業ディレクトリです。

プラグインAPIサブプロセスを管理するのに役立ちますOSProcessHandlerクラス(だけでなく、ProcessAdapterのような他のクラス)を提供し、その出力を扱うなど