Java从包运行exe文件

时间:2015-10-12 21:01:27

标签: java eclipse

我试图从程序所在的同一个包中运行一个exe文件

Process p = Runtime.getRuntime().exec("prog.exe");

Desktop.getDesktop().open(new File("prog.exe"));

但他们都给我错误。我确定名称中没有拼写错误,它仍然给我一个错误。是否有另一种方法可以做到这一点,而无需使用整个目录?

1 个答案:

答案 0 :(得分:0)

您需要将它从可能在jar中的资源复制到绝对路径。还要确保路径正确。如果prog.exe与包pkg中的类位于同一目录中,则需要将pkg/添加到资源名称。

File tmpCopy = File.createTempFile("prog", ".exe");
Files.copy(ClassLoader.getSystemResourceAsStream("pkg/prog.exe"), tmpCopy.toPath(), StandardCopyOption.REPLACE_EXISTING);
// Needed on Linux/Mac only ---Files.setPosixFilePermissions(tmpCopy.toPath(), PosixFilePermissions.fromString("rwxrwxrwx"));
Process p = new ProcessBuilder(tmpCopy.getAbsolutePath()).inheritIO().start();
p.waitFor();