Есть ли способ выключить компьютер с использованием встроенного метода Java?Выключение компьютера
ответ
Создайте свою собственную функцию для выполнения ОС command через command line?
Для примера. Но знайте, где и почему вы хотите использовать это, как другие отмечают.
public static void main(String arg[]) throws IOException{
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("shutdown -s -t 0");
System.exit(0);
}
Быстрый ответ: нет. Единственный способ сделать это - вызывать команды, специфичные для ОС, которые вызывают остановку компьютера, при условии, что ваше приложение обладает необходимыми привилегиями для этого. Это по своей сути не переносимо, поэтому вам нужно либо знать, где будет работать ваше приложение, либо использовать разные методы для разных ОС и определить, какой из них использовать.
Вы можете использовать JNI, чтобы сделать это, как бы вы ни делали это с помощью C/C++.
Вот еще один пример, который может работать кроссплатформенность:
public static void shutdown() throws RuntimeException, IOException {
String shutdownCommand;
String operatingSystem = System.getProperty("os.name");
if ("Linux".equals(operatingSystem) || "Mac OS X".equals(operatingSystem)) {
shutdownCommand = "shutdown -h now";
}
else if ("Windows".equals(operatingSystem)) {
shutdownCommand = "shutdown.exe -s -t 0";
}
else {
throw new RuntimeException("Unsupported operating system.");
}
Runtime.getRuntime().exec(shutdownCommand);
System.exit(0);
}
Конкретные команды отключения могут потребоваться различные пути или административные привилегии.
Лучше использовать .startsWith, чем использование .equals ...
String osName = System.getProperty("os.name");
if (osName.startsWith("Win")) {
shutdownCommand = "shutdown.exe -s -t 0";
} else if (osName.startsWith("Linux") || osName.startsWith("Mac")) {
shutdownCommand = "shutdown -h now";
} else {
System.err.println("Shutdown unsupported operating system ...");
//closeApp();
}
отлично работает
Ra.
Я использую эту программу для выключения компьютера за X минут.
public class Shutdown {
public static void main(String[] args) {
int minutes = Integer.valueOf(args[0]);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
ProcessBuilder processBuilder = new ProcessBuilder("shutdown",
"/s");
try {
processBuilder.start();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}, minutes * 60 * 1000);
System.out.println(" Shutting down in " + minutes + " minutes");
}
}
В Windows Embedded по умолчанию в cmd отсутствует команда shutdown. В таком случае вам нужно добавить эту команду вручную или использовать функцию ExitWindowsEx из win32 (user32.lib) с помощью JNA (если вы хотите больше Java) или JNI (если вам проще установить привилегии в C-коде).
Вот пример использования Apache Commons Lang'sSystemUtils:
public static boolean shutdown(int time) throws IOException {
String shutdownCommand = null, t = time == 0 ? "now" : String.valueOf(time);
if(SystemUtils.IS_OS_AIX)
shutdownCommand = "shutdown -Fh " + t;
else if(SystemUtils.IS_OS_FREE_BSD || SystemUtils.IS_OS_LINUX || SystemUtils.IS_OS_MAC|| SystemUtils.IS_OS_MAC_OSX || SystemUtils.IS_OS_NET_BSD || SystemUtils.IS_OS_OPEN_BSD || SystemUtils.IS_OS_UNIX)
shutdownCommand = "shutdown -h " + t;
else if(SystemUtils.IS_OS_HP_UX)
shutdownCommand = "shutdown -hy " + t;
else if(SystemUtils.IS_OS_IRIX)
shutdownCommand = "shutdown -y -g " + t;
else if(SystemUtils.IS_OS_SOLARIS || SystemUtils.IS_OS_SUN_OS)
shutdownCommand = "shutdown -y -i5 -g" + t;
else if(SystemUtils.IS_OS_WINDOWS_XP || SystemUtils.IS_OS_WINDOWS_VISTA || SystemUtils.IS_OS_WINDOWS_7)
shutdownCommand = "shutdown.exe -s -t " + t;
else
return false;
Runtime.getRuntime().exec(shutdownCommand);
return true;
}
Этот метод учитывает много больше операционных систем, чем любой из вышеперечисленных ответов. Он также выглядит намного приятнее и надежнее, чем проверка свойства os.name
.
Редактировать: Теперь у пользователя есть возможность ввести задержку, если они захотят!
легко одиночная линия
Runtime.getRuntime().exec("shutdown -s -t 0");
но работают только на окнах
- 1. Выключение компьютера с nasm
- 2. Выключение удаленного компьютера
- 3. Выключение компьютера из AIR/Flex
- 4. Выключение компьютера из терминала в Ubuntu
- 5. Свернуть Свернуть FormClose предотвращает выключение компьютера
- 6. выключение компьютера в определенное время .bat
- 7. Выключение удаленного компьютера PowerShell, одного ПК
- 8. Из локального HTML-файла, выключение компьютера вниз с Python/AJAX
- 9. Файл поврежден после выключения компьютера (выключение) в netbeans
- 10. выключение youtrack java process
- 11. Окно PowerShell, предотвращающее выключение
- 12. «Заказать» выключение УДСА с Swift
- 13. Выключение ExecutorService
- 14. Выключение безопасности/
- 15. Удаленное выключение без (!) RPC-сервиса
- 16. прерывание выключения компьютера из службы Windows
- 17. Java: как я могу реагировать на выключение компьютера в Windows XP?
- 18. Akka.Net cluster singleton - хэндовер не возникает, когда текущее одноточечное выключение компьютера неожиданно
- 19. Выключения компьютера с текстовым полем таймер
- 20. Задержка или остановка окна спящего режима/выключение
- 21. Есть ли способ настроить выключение и выключение предупреждений Alertify?
- 22. Выключение и выключение скриптов на основе запросов к мультимедиа?
- 23. Любой способ узнать, есть ли запланированное выключение?
- 24. Как закрыть Windows при завершении работы компьютера?
- 25. Выключение программы при синхронизации
- 26. Выключение ethernet PHY
- 27. Включение/выключение UISegmentedControl
- 28. Включение/выключение звука
- 29. Включение/выключение TaskManager
- 30. Включение и выключение порта
+1 ничего более ява, чем эта линия - Runtime выполнения = Runtime.getRuntime(); – BRampersad 2011-10-23 23:40:56
Будет ли это работать только на окнах или где угодно? – 2012-09-06 21:08:37
Это будет работать только на Windows. – partlov 2013-01-12 20:01:41