我是IntelliJ插件開發的新手,想知道如何在插件中的命令行中執行命令。IntelliJ插件 - 運行控制檯命令
我想在當前的項目根目錄中調用命令「gulp」。
我已經嘗試過使用
Runtime.getRuntime().exec(commands);
包含「CD C:\用戶\用戶\ MyProject的」命令和「大口」,但它似乎並沒有工作的方式,我不知道,如果插件API提供了更簡單的方法。
非常感謝。 :-)
我是IntelliJ插件開發的新手,想知道如何在插件中的命令行中執行命令。IntelliJ插件 - 運行控制檯命令
我想在當前的項目根目錄中調用命令「gulp」。
我已經嘗試過使用
Runtime.getRuntime().exec(commands);
包含「CD C:\用戶\用戶\ MyProject的」命令和「大口」,但它似乎並沒有工作的方式,我不知道,如果插件API提供了更簡單的方法。
非常感謝。 :-)
我有點晚(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/
Runtime類提供exec(String [],String [],File)方法,其中最後一個參數是啓動的子進程的工作目錄。
插件API提供OSProcessHandler類(以及其他類,如ProcessAdapter),它可以幫助管理子進程,處理其輸出等
你想從你的Java程序中調用'gulp',還是想問別的東西? –
@TimBiegeleisen他從IDE插件的想法 – Natecat