2013-07-24 2 views
1

На самом деле я работаю Wolfram Mathematica, у нас нет функций для запуска внешних программ, поэтому я хочу сделать это приложение с использованием технологии Java.Как запустить файл .exe?

В моей организации, C разработки команда, разработала одну заявку и дано нам в .exe format.Know Я хочу, чтобы запустить этот файл из .exeJava.

У меня есть .exe имя как ThMapInfratab1-2.exe под C:/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

Помечено в качестве дубликата вопроса к ссылке WYSIWYG указал. – bschandramohan

+0

@ Все ребята я изменил мой вопрос. так что вы можете проверить его один раз. –

ответ

0

Вам необходимо выполнить метод exec() Runtime, который возвращает экземпляр процесса или использует методы класса 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 { государственный статическая сила основной (String арг []) бросает IOException { процесса \t Process = Runtime.getRuntime() Exec ("C:/Users/Infratab Бангалор/Desktop/Род> ThMapInfratab1-2 .Exe"); } } '. Я получаю следующую ошибку:« Исключение в потоке »main« 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

Смежные вопросы