0
我試圖運行此命令的工作:爪哇 - Arduino的 - 使用IDE(使用GUI禁用)錯誤上傳草圖,但它的命令行
"C:\arduino\arduino --upload --board arduino:avr:nano --port COM3 -v ..\config\config.ino"
它從我的命令行工作。只需幾秒鐘即可完成&的完成。
問題是當我試圖從Java與執行:
String cmd = "C:\arduino\arduino --upload --board arduino:avr:nano --port COM3 -v ..\config\config.ino"
Process p = Runtime.getRuntime().exec(cmd);
需要一分鐘來執行,結尾是:
啓動4J:啓動應用程序時發生了錯誤
我也試過ProcessBuilder。我也嘗試將命令保存到批處理文件,然後從Java運行批處理文件...但我得到了相同的結果。
編輯:
如果我命令列運行的批處理文件它也能工作。正如我所說,如果我從Java運行它,它不會。
我意識到如果我從另一個批處理文件運行批處理文件,它也不會工作。
也許對於Java而言,沒有任何問題,但是使用Arduino IDE。
編輯2: 在命令之前添加「start」參數並將其保存到批處理文件似乎工作。然後你只需從java運行批處理。
事情是這樣的:
arduino.bat
"start C:\arduino\arduino --upload --board arduino:avr:nano --port COM3 -v ..\config\config.ino"
Java代碼
String s = "PATH TO ARDUINO.BAT"
Process p = null;
ProcessBuilder pb = new ProcessBuilder(s + "arduino.bat");
pb.directory(new File(s));
p = pb.start();
我檢查過,沒有工作。在第一篇文章中增加了更多信息。 – Garcel 2014-10-12 16:20:18
這兩個批處理文件在同一個目錄中嗎? – Lubo 2014-10-12 16:34:29
是的,他們是。我將批處理路徑固定爲直接指向另一批處理。 – Garcel 2014-10-12 18:07:50