я попробую
ProcessBuilder().command("C:\\Windows\\System32\\sc.exe query power");
или
ProcessBuilder().command("c:/windows/system32/sc.exe query power");
или
ProcessBuilder().command("c:/windows/system32/sc query power");
Я всегда получаю одну и ту же ошибку...
Это недопустимый код Java. Вам не хватает очень важного ключевого слова new, чтобы сделать его действительным.
новое здесь, извините за частичную вставку




Вы должны отправлять каждый аргумент для sc.exe отдельно в ProcessBuilder, чтобы избежать проблем с экранированием или цитированием аргумента. Прямо сейчас у вас есть вся команда в виде одного выражения String, это вызывает проблему.
Так как каталог C:\Windows\System32 должен быть в системе PATH этого должно хватить.
ProcessBuilder pb = new ProcessBuilder("sc.exe", "query", "power");
Process p = pb.start();
int result = p.waitFor();
в конечном счете, я использовал new ProcessBuilder("sc", "query", "power");, так что да, это в пути, и да, я думаю, что это лучший способ сделать, потому что «cmd arg1 arg2 и т. д.» интерпретируется jvm как одно имя exe (поэтому с пробелами) спасибо!
Пожалуйста, внимательно перечитайте Javadoc (особенно примеры) для
ProcessBuilder.