2016-06-22 2 views
-3

Я использую построитель процессов для выполнения нескольких команд оболочки (а не внешнего скрипта оболочки) из Java. Я могу передать переменные системной среды в команду оболочки; Однако, если я хочу передать переменную, определенную в java (например, строку) в качестве аргумента для команды оболочки, как я могу это сделать? Мой код выглядит примерно так. Я хочу, чтобы два файла должны быть созданы (подкрашены) от имени 123 & 234.Как передать переменные из Java в команды оболочки

public class ExecShellCmds { 

public static void beginWrite() { 
    String var1 = "123"; 
    String var2 = "234"; 

    String s = null; 
    try { 
     String[] cmd = {"/bin/bash", "-c", 
      "touch var1;" 
      + "touch var2;" 
     }; 

     Process p = Runtime.getRuntime().exec(cmd); 
}} 
+0

Посмотрите здесь. Я думаю, что это было бы полезно: [передать переменную в оболочку] (http://stackoverflow.com/questions/23906717/pass-a-variable-from-java-to-a-shell-script) –

+0

Если вы покажете нам, код, который у вас есть, мы можем направлять вас в правильном направлении. –

+0

Я не хочу запускать внешний скрипт, но хотел бы напрямую вызвать несколько команд с помощью в java-коде – Karthik

ответ

0

аргументы (и программа), хранятся в List<String>, вы можете получить ссылку на этот список с ProcessBuilder.command(), вы можете просто добавьте свои параметры в этот список.

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