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

如果使用exec()将外部应用程序定义为Java中无效的Win32应用程序,如何调用该应用程序?,java,url,exe,Java,Url,Exe,我正忙于从Java源代码打开外部应用程序。我正在尝试打开一个名为Runescape的游戏的启动程序,它位于C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Jagex中。此目录中的文件名为RuneScape-Launcher.url 以下代码展示了我迄今为止的进展: public static void main(String[] args) throws IOException, InterruptedException { //

我正忙于从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
线程“main”java.io.IOException中的异常:无法运行程序“C:\ProgramData\Microsoft\Windows\Start”:CreateProcess error=193,%1不是有效的Win32应用程序 位于java.lang.ProcessBuilder.start(未知源) 位于java.lang.Runtime.exec(未知源) 位于java.lang.Runtime.exec(未知源) 位于java.lang.Runtime.exec(未知源) Main.Main(Main.java:47) 原因:java.io.IOException:CreateProcess错误=193,%1不是有效的Win32应用程序 在java.lang.ProcessImpl.create(本机方法) 位于java.lang.ProcessImpl。(未知源) 位于java.lang.ProcessImpl.start(未知源) ... 还有5个 显然,
RuneScape Launcher.url
不是有效的Win32应用程序。如何启动这样的应用程序

我的研究: -建议使用ShellExecute,但它是用另一种编程语言编写的。我找不到类似的Java解决方案。 -讨论调用外部应用程序时传递参数,但该外部应用程序是.exe -演示如何调用外部应用程序,但再次仅调用.exe


然后,我试着从cmd手动启动这个启动器。。。成功地首先,我找到了启动器目录:
cdc:\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");