2013-07-24 51 views
1

其实我工作Wolfram Mathematica,我们没有任何运行外部程序的功能,所以我想用Java技术来做这个App。如何运行.exe文件?

在我的组织,C开发团队,开发了一个应用程序,并format.Know我想从Java运行.exe文件给我们一个.exe

我有一个.exe名称为ThMapInfratab1-2.exeC:/Users/Infratab Bangalore/Desktop/Rod's目录下。

一旦我们运行.exe文件,自动我需要.txt文件作为输入名称TherInput.txt从同一目录(C:/Users/Infratab Bangalore/Desktop/Rod's

对于我的构象,我跑了ThMapInfratab1-2.exe文件中使用命令提示符下以下列方式手动他的工作很棒。

C:\Users\Infratab Bangalore\Desktop\Rod's>ThMapInfratab1-2.exe 

最后.exe文件出口牛逼.txt文件的输出到同一个目录(C:/Users/Infratab Bangalore/Desktop/Rod's)。

同样的事情,我想用Java。你可以用我的目录解释。

为此,我写了下面的代码,但它不工作。

import java.io.IOException; 
public class ProcessBuilderSample { 

    public static void main(String args[]) throws IOException { 
     Process process = new ProcessBuilder(
       "C:\\Users\\Infratab bangalore\\Desktop\\Rod's\\ThMapInfratab1-2.exe") 
       .start(); 
    } 
} 

如果有人知道,建议我。

谢谢。

+0

标记为重复的问题所见即所得指出的链接。 – bschandramohan

+0

@所有人我修改了我的问题。所以你可以检查一次。 –

回答

0

您需要执行Runtime的exec()方法,该方法返回Process实例或使用ProcessBuilder类方法。

Runtime runtime = Runtime.getRuntime(); 
Process proc = runtime.exec("C:\\Users\\Infratab Bangalore\\Desktop\\Rod's\\ThMapInfratab1-2.exe"); 

可以使用的ProcessBuilder作为

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
Map<String, String> env = pb.environment(); 
env.put("VAR1", "myValue"); 
env.remove("OTHERVAR"); 
env.put("VAR2", env.get("VAR1") + "suffix"); 
pb.directory(new File("myDir")); 
File log = new File("log"); 
pb.redirectErrorStream(true); 
pb.redirectOutput(Redirect.appendTo(log)); 
Process p = pb.start(); 
assert pb.redirectInput() == Redirect.PIPE; 
assert pb.redirectOutput().file() == log; 
assert p.getInputStream().read() == -1; 
+0

我修改了我的问题,你可以检查一次。 –

0

你可以这样说:

Process process=Runtime.getRuntime().exec("C:\\Users\\Infratab Bangalore\\Desktop\\Rod's\\ThMapInfratab1-2.exe"); 
+0

错误我改变了你的链接里面的exec方法。 (道歉) – Jayesh

+0

@MaVRoSCy我以下面的方式编写代码。它不工作.'import java.io.IOException; 。 公共类ExeProcess { 公共静态无效主要(字符串ARGS [])抛出IOException异常 { \t工艺过程=调用Runtime.getRuntime()EXEC(“C:/用户/ Infratab班加罗尔/桌面/杆的> ThMapInfratab1-2 。可执行程序”); } }'。我得到以下错误'在线程中的异常“主”java.io.IOException:无法运行程序“C:/ Users/Infratab”:CreateProcess error = 2,系统找不到指定的文件' –

+0

介意文件分隔符 – MaVRoSCy

0
Process process=Runtime.getRuntime().exec("C:\Users\Infratab Bangalore\Desktop\Rod's>ThMapInfratab1-2.exe"); 
+0

此代码不能编译 - 非法转义字符 – MaVRoSCy