gpt4 book ai didi

java - 如何使用Java运行exe文件

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

这是我的代码:

import java.io.IOException;

public class testv1 {

public static void main (String[] args) {
System.out.println("ABC");
try {
Process proc = Runtime.getRuntime()
.exec("D:\\Program\\Pyinstaller\\Merge\\Test\\dist\\helloworld.exe");
} catch (IOException e) {
e.printStackTrace();
}

System.out.println("Done");
}
}

我想运行 helloworld.exe,但它不起作用。该程序只是打印

ABC
DONE

我也尝试过这个:

import java.io.File;
import java.io.IOException;
public class testv1 {
public static void main (String[] args) {
System.out.println("ABC");
try
{
Runtime.getRuntime().exec("D:\\Program\\Pyinstaller\\Merge\\Test\\dist\\helloworld.exe", null, new File("D:\\Program\\Pyinstaller\\Merge\\Test\\dist\\"));
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println("Done");
}
}

但输出与前一个相同。

最佳答案

您可以使用工作目录执行进程:

exec(字符串命令,字符串[] envp,文件目录)

在指定的环境和工作目录的单独进程中执行指定的字符串命令。

命令是.exe的位置envp 可以为空dir,是你的.exe的目录对于您的代码,它应该是...

Runtime.getRuntime().exec("c:\\program files\\test\\test.exe", null, new File("c:\\program files\\test\\"));

您可以使用 Runtime.exec(java.lang.String, java.lang.String[], java.io.File) 来设置工作目录。

或者您可以按如下方式使用 ProcessBuilder:

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
pb.directory(new File("myDir"));
Process p = pb.start();

用于读取进程的输出:

BufferedReader reader = 
new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder builder = new StringBuilder();
String line = null;
while ( (line = reader.readLine()) != null) {
builder.append(line);
builder.append(System.getProperty("line.separator"));
}
String result = builder.toString();

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

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