2016-04-26 262 views
1

我是IntelliJ插件開發的新手,想知道如何在插件中的命令行中執行命令。IntelliJ插件 - 運行控制檯命令

我想在當前的項目根目錄中調用命令「gulp」。

我已經嘗試過使用

Runtime.getRuntime().exec(commands); 

包含「CD C:\用戶\用戶\ MyProject的」命令和「大口」,但它似乎並沒有工作的方式,我不知道,如果插件API提供了更簡單的方法。

非常感謝。 :-)

+0

你想從你的Java程序中調用'gulp',還是想問別的東西? –

+1

@TimBiegeleisen他從IDE插件的想法 – 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被設定爲可等同於項目目錄terminal命令cd path/to/dir/

0

Runtime類提供exec(String [],String [],File)方法,其中最後一個參數是啓動的子進程的工作目錄。

插件API提供OSProcessHandler類(以及其他類,如ProcessAdapter),它可以幫助管理子進程,處理其輸出等