2015-01-08 7 views
2

Мне нужно выполнить несколько комментариев в одном окне cmd с помощью java.выполнить несколько команд в cmd с помощью java

Комментарии являются

1. cd C:\Apps\wildfly-8.0.0.Final\bin 
2. jboss-cli.bat --connect --command=\"deploy --force C:\Users\me\git\test\Test\build\libs\TestEAR.ear 

Потому что мне нужно выполнить вторую команду из папки "C: \ Apps \ wildfly-8.0.0.Final \ Bin".

Я попытался это:

Runtime.getRuntime().exec("cmd /c start cd C:\\Apps\\wildfly-8.0.0.Final\\bin\\ && start cmd.exe /c jboss-cli.bat --connect --command=\"deploy --force C:\\Users\\me\\git\\test\\Test\\build\\libs\\TestEAR.ear\""); 

Но он выполняет эти команды отдельно, то он будет открыт один CMD окна и выполняют первые команды, то он будет выполнять вторую команду в другом CMD окна и показывая ошибку:

Could not locate "C:\Users\me\git\test\Test\build\libs\TestEAR.ear". 
Please check that you are in the bin directory when running this script. 
Press any key to continue . . . 

Я нашел несколько решений с командным файлом, но в моем приложении я не могу использовать пакетный файл (не нужно использовать пакетный файл).

Может ли кто-нибудь предложить решение?

+0

возможного дубликата [Java: Запуск CMD команды (несколько команд с несколькими аргументами сразу)] (http://stackoverflow.com/questions/17072849/java-running-cmd-commands-multiple- commands-with-multiple-arguments-at-once) – ha9u63ar

+0

@ ha9u63ar: Решение не подходит. Я не могу использовать командный файл для своего приложения. –

+1

См. Также [Когда Runtime.exec() не будет] (http://www.javaworld.com/article/2071275/core-java/when-runtime-exec-- -won-t.html) для многих хороших советов по правильному созданию и обработке процесса. Затем проигнорируйте это, ссылаясь на 'exec' и используйте' ProcessBuilder' для создания процесса. –

ответ

3

Если я понимаю ваш вопрос, вы можете использовать ProcessBuilder и позвонить по телефону directory(File). Что-то вроде

public static void main(String[] args) throws IOException { 
    String folder = "C:\\Apps\\wildfly-8.0.0.Final\\bin"; 
    String command = "jboss-cli.bat --connect --command=\"deploy --force " 
     + "C:\\Users\\me\\git\\test\\Test\\build\\libs\\TestEAR.ear\""; 
    ProcessBuilder pb = new ProcessBuilder(command); 
    pb.directory(new File(folder)); 
    pb.inheritIO(); 
    Process p = pb.start(); 
    try { 
     p.waitFor(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
} 
+0

показывается Проблема возникла при оценке проекта ': ECommerce'. > Нет подписи метода: java.lang.String.positive() применим для типов аргументов:() values: [] Возможные решения: notify(), size(), tokenize(), size(), tokenize () –

+0

Мне также нужно открыть cmd и выполнить эту команду в этом cmd –

+0

@JinceMartin Я уверен, что вы не можете этого сделать. Вы можете написать сценарий cmd и запустить его, но вы не можете открыть и управлять cmd. –

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