gpt4 book ai didi

java - 如果使用 exec() 将外部应用程序定义为 Java 中无效的 Win32 应用程序,如何调用外部应用程序?

转载 作者:行者123 更新时间:2023-11-30 06:06:22 24 4
gpt4 key购买 nike

我正在摆弄从 Java 源代码打开外部应用程序。我正在尝试打开名为 Runescape 的游戏的启动器,该游戏位于 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Jagex 内。该目录中的文件名称为 RuneScape Launcher.url

这是展示我到目前为止的进展的代码:

public static void main(String[] args) throws IOException, InterruptedException {
//doesn't work
Process p = Runtime.getRuntime().exec("C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Jagex\\RuneScape Launcher.url");

//if Chrome was to be opened, it works, since it is .exe
// Process p = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");

p.waitFor();
System.out.println(p.exitValue());
}

抛出的错误是:

Exception in thread "main" java.io.IOException: Cannot run program "C:\ProgramData\Microsoft\Windows\Start": CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at Main.main(Main.java:47)
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 5 more

显然,RuneScape Launcher.url 不是有效的 Win32 应用程序。如何启动这样的应用程序?

我的研究: -this post建议使用 ShellExecute,但它是用另一种编程语言编写的。我找不到类似的 Java 解决方案。 -this post谈论调用外部应用程序时传递参数,但该外部应用程序是.exe -this page演示了调用外部应用程序,但同样只有 .exe

然后,我尝试从 cmd 手动启动此启动器...成功。首先,我找到启动器目录:cd C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Jagex,然后调用启动器:“RuneScape Launcher.url”。这正确启动了启动器。为什么不从Java代码开始呢?

最佳答案

尝试将启动器作为参数传递给 cmd.exe:

    Process p = Runtime.getRuntime().exec("cmd.exe", "/c", "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Jagex\\RuneScape Launcher.url");

关于java - 如果使用 exec() 将外部应用程序定义为 Java 中无效的 Win32 应用程序,如何调用外部应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230036/

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