java - 如何解决运行 .exe 文件时出现的问题

标签 java processbuilder

我在 C:\Users\Infratab Bangalore\Desktop\Rod 目录下有一个 ThMapInfratab1-2.exe 文件。我按照以下方式在命令提示符下执行。它工作正常。

 C:\Users\Infratab Bangalore\Desktop\Rod>ThMapInfratab1-2.exe TMapInput.txt

我想使用Java技术执行相同的过程。使用 StackOverFlow 伙计们,我尝试了两种方法。

案例1:

使用getRuntime()

   import java.util.*;
   import java.io.*;
   public class ExeProcess
{
public static void main(String args[]) throws IOException
{
    Runtime rt = Runtime.getRuntime();
    File filePath=new File("C:/Users/Infratab Bangalore/Desktop/Rod");
    String[] argument1  = {"TMapInput.txt"};
    Process proc = rt.exec("ThMapInfratab1-2.exe", argument1, filePath);
}
}

案例2:

使用ProcessBuilder

 import java.io.File;
 import java.io.IOException;
 public class ProcessBuilderSample {

 public static void main(String args[]) throws IOException 
 {
  String executable = "ThMapInfratab1-2.exe";
  String argument1  = "TherInput.txt";
  File workingDirectory = new File("C:/Users/Infratab Bangalore/Desktop/Rod");

  ProcessBuilder pb = new ProcessBuilder(executable, argument1);
  pb.directory(workingDirectory);
  pb.start();     
 }
 }

在这两种情况下,我都收到以下错误。

错误:

   Exception in thread "main" java.io.IOException: Cannot run program "ThMapInfratab1-2.exe" (in directory "C:\Users\Infratab Bangalore\Desktop\Rod"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at ProcessBuilderSample.main(ProcessBuilderSample.java:16)
  Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 2 more

我不明白,问题出在哪里。谁能建议我。

我正在使用jre 7

谢谢

最佳答案

尝试使用这个:

import java.io.File;
 import java.io.IOException;
 public class ProcessBuilderSample {

 public static void main(String args[]) throws IOException 
 {
  String executable = "ThMapInfratab1-2.exe";
  String argument1  = "TherInput.txt";
  File workingDirectory = new File("C:/Users/Infratab Bangalore/Desktop/Rod");

  ProcessBuilder pb = new ProcessBuilder("cmd", "/c","start" ,executable, argument1);
  pb.directory(workingDirectory);
  pb.start();     
 }
 }

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

相关文章:

java - 无法使用 Obj-C 解密使用 Java 加密的 AES 数据

java - 我想在一个对话框中显示多个输出。我该如何实现这个目标?

java - 使用 Java ProcessBuilder 执行 "echo"不会插入变量(输出字符串 "$PATH")

java - ProcessBuilder 无法访问相对文件夹位置

java - 使用进程生成器在 Internet Explorer Java 中打开文件

java - 无法访问资源文件夹中的文件

java - Netbeans Profiler 的 Heap Walker 中的引用窗口有什么用?

java - 为什么这不返回新字符串?

Java ProcessBuilder 使用 cat 重定向输入

java - 创建包含收件人、主题、正文和附件的电子邮件