gpt4 book ai didi

java - 如何在java中运行.exe文件

转载 作者:行者123 更新时间:2023-11-29 07:34:57 24 4
gpt4 key购买 nike

我知道之前有人问过这个问题,但这些答案似乎都不适合我。我试图让一个 .exe 文件在 java 程序中运行。以下代码(我从互联网上摘录的)有效;记事本启动。

import java.io.IOException;

public class start {
public static void main(String args[])
{
try {
Process p = Runtime.getRuntime().exec(new String[] {"C:\\Windows\\System32\\notepad.exe"});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

但是当我将文件夹更改为包含我自己的 .exe 文件的文件夹时,它没有执行任何操作。它甚至没有给出错误。它只是开始和终止。如果我双击文件夹本身中的文件,它只会打开并运行,所以文件本身可以工作。

所以,为了清楚起见,我将 Process p 更改为

Process p = Runtime.getRuntime().exec(new String[] {"C:\\Users\\Sharonneke\\Documents\\IntraFace-v1.2\\x64\\Release\\IntraFaceTracker.exe"});

为什么这行不通,我该如何解决?

更新:所以我不必使用 new String [] 但这并不能解决问题。此外,使用 ProcessBuilder(如 kage0x3b 在答案部分中所说)会给出错误:"The constructor ProcessBuilder(String) is undefined" 虽然它显然应该像那样工作:(

最佳答案

如果程序尝试从工作目录加载文件,则程序的工作目录可能存在问题,如果单击该目录显然可以工作,但我认为如果不设置它,则从 Java 代码执行时不会出现问题。尝试使用 ProcessBuilder,然后设置工作目录:

    File file = new File("C:\\Users\\Sharonneke\\Documents\\IntraFace-v1.2\\x64\\Release\\IntraFaceTracker.exe");
ProcessBuilder processBuilder = new ProcessBuilder(file.getAbsolutePath());
processBuilder.directory(file.getParentFile());

try {
processBuilder.start();
} catch(IOException ex) {
ex.printStackTrace();
}

关于java - 如何在java中运行.exe文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37123283/

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