Подтвердить что ты не робот

Как выполнить файл командной строки .exe в java

  • Я хочу преобразовать avi файл в 3gp используя java-программу.
  • Для этого я использую "Общее количество E.M. Видео Конвертер Командная строка 2.43 " и команда для него - это "C:\E.M. TVCC > TVCC -f E:\TestVideo\01.avi -o E:\OutputFiles\target.3gp "
  • У меня есть программа для выполнения команды line exe на сайте http://www.rgagnon.com/javadetails/java-0014.html, который:

Путь к исполняемому файлу с пробелами в них

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

public class Test {
  public static void main(String[] args) throws Exception {
    Process p = Runtime.getRuntime().exec(
       "\"c:/program files/windows/notepad.exe\"");
    p.waitFor();
  }
}

Если вам нужно передать аргументы, это безопаснее для массива String, особенно если они содержат пробелы.

String[] cmd = { "myProgram.exe", "-o=This is an option" };
Runtime.getRuntime().exec(cmd);

Если использование команды "Пуск" и путь к файлу, который нужно запустить, содержит пробел, тогда вы должны указать заголовок для команды "Пуск".

String fileName = "c:\\Applications\\My Documents\\test.doc";
String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName};
Runtime.getRuntime().exec(commands);

*** Может ли кто-нибудь помочь мне поместить указанную выше команду в этот код? *** Я не знаю правил синтаксиса, чтобы поместить эту команду в приведенный выше код. Пожалуйста, помогите мне.

Это точный код java, который я использую:

public class Test {
    public static void main(String[] args) throws Exception {

        String[] cmd = { "C:\\Program Files\\E.M. TVCC\\TVCC.exe", "-f C:\\Program Files\\E.M. TVCC\\01.avi", "-o C:\\Program Files\\E.M. TVCC\\target.3gp" };
        Process p = Runtime.getRuntime().exec(cmd);
        p.waitFor();
    }
}
4b9b3361

Ответ 1

У вас есть все вопросы в вашем вопросе. Это всего лишь вопрос соединить все это.

Что-то вроде следующего должно работать:

public class Test {
    public static void main(String[] args) throws Exception {

        String[] cmd = { "C:\\E.M. TVCC\\TVCC.exe", "-f E:\\TestVideo\\01.avi", "-o E:\\OutputFiles\\target.3gp" };
        Process p = Runtime.getRuntime().exec(cmd);
        p.waitFor();
    }
}

Тем не менее, жесткие пути кодирования, подобные этому, не являются хорошей идеей, вы должны прочитать их откуда-то; аргументы вашей программе, файл свойств и т.д.

Ответ 2

В некоторых случаях вы хотите иметь больше возможностей:  - Убейте exe в случае его зависания.  - Уметь отменять exe.  - Получить выход exe (к стандартным выводам и стандартной ошибке)  - Запустите его асинхронно. Вы можете прочитать о решении по адресу: http://developer4life.blogspot.co.il/2013/01/executing-command-line-executable-from.html