2016-07-03 4 views
0

Привет, ребята :) Я действительно работаю над проектом, и мне нужно выполнить класс в новой командной строке, но я должен сделать это с помощью java. Поэтому в классе класса я должен написать правильный код, который вызывает класс Sensor в новой командной строке. У меня есть эти строки кода, которые открывают новое командное приглашение, но как заставить его выполнить класс Sensor в этой командной строке?Запуск класса в cmd через код Java

String[] command =(new String[]{"cmd", "/k", "start", "cmd" , "\""}); 
    Runtime.getRuntime().exec(command); 

Любая помощь будет оценена! Заранее спасибо :)

+0

Можете ли вы показать нам свой класс Sensor? – timothyclifford

+0

@timothyclifford Это немного сложно, но что-то вроде: (это не полный) public class Sensor {public static void main (String [] args) throws IOException, JSONException { do {// СДЕЛАТЬ ЗАПРОС ОТ ОТВЕТЫ НА СЕРВЕР// ПОЛУЧАЕТ РЕАГИРОВАНИЕ Sensor.simulation (тип, idnumber); // АКТИВИРОВАТЬ ДАТЧИКИ сенсора.Sensor.tokenManagement (prevPort, nextId, nextPort); // УПРАВЛЯТЬ TOKEN} System.out.println («Push exit to delete the sensor»); { // УДАЛИТЬ ЗАПРОС НА ОТДЕЛ СЕРВЕРА} // RESPONSE FROM SERVER, {System.exit (1);} –

+0

Обратите внимание на [Выход из командной строки, возвращающий значение null] (http://stackoverflow.com/questions/38113931/), чтобы понять, что означает 'cmd/c start cmd.exe/K' или другие варианты, например, выше cmd/k start cmd, означают, что многие программисты Java используют, не зная, что здесь происходит. – Mofi

ответ

0

Попробуйте этот код
будет открыть CMD и выполнить команду переданную ей
Для компиляции файла Java.

String command="cmd /c \""+drive+" && cd "+fileParentDrive+" && javac "+javaFileName+"\""; 
Process child = Runtime.getRuntime().exec(command); 

Чтобы запустить файл класса

command="cmd.exe /k start cmd.exe /k \""+drive+" && java "+classFileName+"\""; 
child = Runtime.getRuntime().exec(command , null , new File(drive+ parent)); 

Метод Runtime.getRuntime().exec(command) возвращает ссылку на Process класса. Теперь вы можете получить вывод файла во время выполнения на CMD, как следовать

Чтобы получить ошибки, если происходит во время компиляции

InputStream in = child.getErrorStream(); 
int i; 
String error=""; 
while((i=in.read())!=-1) 
{ 
    error+=(char)i; 
} 
Смежные вопросы