gpt4 book ai didi

Java编辑批处理文件ECHO命令

转载 作者:行者123 更新时间:2023-12-01 23:39:02 25 4
gpt4 key购买 nike

我创建了一个 java GUI,它执行批处理文件,以便轻松、无缝地命令串行 com 端口设备。

try {
Process p = Runtime.getRuntime().exec("toggleLed.bat");
} catch(Exception e) {
e.printStackTrace();
}

此代码执行以下 .bat 文件:

@ECHO OFF
ECHO A >COM1
EXIT

此代码通过 com 端口 1 发送字母“A”,设备将其解释为命令并打开 LED,工作正常。唯一的问题是,我希望能够通过 java GUI 更改 COM 端口。我有一个“jSpinner”,但我不知道如何让它编辑批处理文件中的 com 端口值。

问题:如何让我的 Java GUI 编辑批处理文件值?

PS:我使用批处理文件通过串行进行通信,因为我尝试了许多库,例如 RXTX,但它们都不能很好地工作/太复杂。

最佳答案

不要对单个命令使用批处理文件:

String command="cmd /C \"ECHO A >COM"+portNum+"\""; 

这会转换为cmd/C "ECHO A>COM#"

并用以下方式调用它:

Process p = Runtime.getRuntime().exec(command);

如果需要多个命令,请在命令行中用&分隔,例如cmd/C "FOO&BAR --baz"

请注意,命令行中的引号是用反斜杠转义的。

但是,我强烈建议您花时间学习和使用库,因为它更加便携。

库可以在多个操作系统(不仅仅是 Windows)上运行,只需进行一些最小的更改,并且绝对不需要完全重写您的应用程序。它们可以作为 jar 与您的项目一起携带并放入类路径中,类似于您现在对批处理文件所做的操作,但实际上是交叉兼容的。

在项目中设置库可能需要额外几分钟的时间,但可以随身携带并通过自定义类加载器放入类路径,或者更简单地,将 -cp 参数放入类路径中java 命令。您还可以编辑 list 文件以将 jar 添加到类路径。

关于Java编辑批处理文件ECHO命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18236192/

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