【发布时间】:2016-11-30 09:30:56
【问题描述】:
单击 javafx 应用程序的按钮(代码中未包含 btn 事件)后,我想使用参数启动外部程序(其中一个参数是将配置文件加载到该外部程序),但我想知道为什么一直给我错误!
我的 IDE 是 InjellJ IDEA 社区版
我知道这个问题是重复的,但是在这个平台上给出的所有示例中,已经尝试过但没有成功,但是我的代码包含配置文件作为参数的一部分
这里是代码
private String appDomain = Paths.get("").toAbsolutePath().normalize().toString();
private String exepath = appDomain+"\\src\\bin\\exeResources\\MyExe.exe";
private String exeargs = appDomain+"\\src\\bin\\exeResources\\MyExe.ppx silent-load";
try {
Runtime r = Runtime.getRuntime();
r.exec(exepath +" "+exeargs);
} catch (IOException e) {
e.printStackTrace();
}
当我删除“exeargs”时出现错误 CreateProcess 错误=193,%1 不是有效的 Win32 应用程序
让我很难知道“exeargs”是否可以与上述 sn-p 一起使用。
您的帮助将不胜感激
编辑
我必须加载的 exefile 和 execonfig 位于我的项目 **bin.exeResource** 中的一个包中
通过
System.out.println(exepath+" "+exeargs);
给我
C:\Users\{MyUser}\OneDrive\IntelliJ IDEA Projects\MyProject Package\src\bin\exeResources\MyExe.exe ...\src\bin\exeResources\MyExe.ppx silent-load
有错误
CreateProcess error=193, %1 is not a valid Win32 application
【问题讨论】:
-
你打印出
exepath的结果了吗?它包括任何空格吗?您确定可执行文件实际上在该路径中吗?您似乎正在寻找一个相对目录,如果您的当前目录不是src目录之上的目录,则可能会失败。 -
.exe 文件完好无损,先生!当我尝试打印参数和我得到的错误时,我编辑了问题并添加了输出!注意.exe文件位于包bin\exeResources
-
啊,所以路径中有空格。 “IntelliJ IDEA 项目” - 包含空格。所以它认为命令是
C:\Users\{MyUser}\OneDrive\IntelliJ并且失败了。我将把它作为副本关闭。