gpt4 book ai didi

Java - Arduino - 使用 IDE 上传草图时出错(禁用 GUI),但它可以从命令行运行

转载 作者:行者123 更新时间:2023-12-01 12:26:27 26 4
gpt4 key购买 nike

我正在尝试运行此命令:

"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);

执行需要一分钟并以以下内容结束:

Launch 4j: an error occurred while starting the application

我也尝试过 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();

最佳答案

我认为问题在于 -v 参数的相对路径。使用完整路径或设置实际工作目录 ProcessBuilder .

关于Java - Arduino - 使用 IDE 上传草图时出错(禁用 GUI),但它可以从命令行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26296136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com