Команда для остановки программы java

Я узнал, как закончить (выключить или остановить) мои Java-программы. Я нашел для него два решения.

  • используя return;
    Когда я хочу завершить или прекратить выполнение моей программы, я добавляю это.
  • используя System.exit(); Иногда я использовал его. Я прочитал о Sytem.exit() из Этот вопрос.

Итак, я знаю немного о них обоих. Но я все еще смущен тем, как они на самом деле работают. Пожалуйста, проверьте коды ниже.

public class Testing < public static void main(String. str) < System.out.println(1); System.exit(0); System.out.println(2); return; >>

Я уверен, что 2 не появится. Я хотел бы знать, почему return; или другие коды могут писать ниже утверждение System.exit(0); и что было реальным определением для return; (потому что для меня это странно для меня return без каких-либо переменных или значений)?

7 ответов

48 Решение Aleks G [2014-03-17 14:25:00]

Вызов System.exit(0) (или любое другое значение в этом случае) приводит к тому, что виртуальная машина Java завершает работу, завершая текущий процесс. Параметр, который вы передадите, будет возвращаемым значением, которое процесс java вернется в операционную систему. Вы можете выполнить этот вызов из любой точки вашей программы — и результат всегда будет таким же — JVM завершается. Поскольку это просто вызов статического метода в классе System , компилятор не знает, что он будет делать — и, следовательно, не жалуется на недостижимый код.

Java. Многопоточность. Остановка потока. Обработка InterruptedException.

return просто отменяет выполнение текущего метода. Это буквально означает возврат элемента управления вызывающему методу. Если метод объявлен как void (как в вашем примере), вам не нужно указывать значение, так как вам нужно вернуть void . Если метод объявлен для возврата определенного типа, тогда вы должны указать возвращаемое значение — и это значение должно быть указанного типа.

return приведет к выходу программы только в том случае, если она находится внутри метода main основного класса. Если вы попытаетесь поместить код после него, компилятор будет жаловаться на недостижимый код, например:

public static void main(String. str)

не будет компилироваться с большинством компиляторов, создавая ошибку unreachable code , указывающую на второй вызов System.out.println .

Читайте также:
Как запустить программу msi

Потому что System.exit() — это еще один метод для компилятора. Он не читает заранее и не выясняет, что вся программа завершится в этот момент (JVM завершает работу). Ваша ОС или оболочка могут читать целое число, которое передается обратно в методе System.exit() . Стандартно для 0 означает «завершение программы, и все прошло нормально» и любое другое значение для уведомления об ошибке. Разработчик должен документировать эти возвращаемые значения для любых пользователей.

return С другой стороны, это зарезервированное ключевое слово, которое компилятор хорошо знает. return возвращает значение и завершает текущий запуск функции, перемещая резервную копию стека к функции, которая его вызывала (если таковая имеется). В приведенном выше коде возвращается void , поскольку вы не предоставили ничего для возврата.

Уроки Java для начинающих #3 | Компиляция программы

5 Karura91 [2014-03-17 14:24:00]

System.exit() завершает работу JVM. Ничего не происходит после выполнения System.exit(). Возврат обычно используется для выхода из метода. Если тип возврата недействителен, вы можете использовать return; Но я не думаю, что это хорошая практика сделать это в основном методе. Вам не нужно ничего делать для завершения программы, если не будет бесконечный цикл или какое-то странное другое выполнение.

4 prady00 [2014-03-17 14:25:00]

Источник: qarchive.ru

Как остановить выполнение Java-программы из командной строки?

Моя основная сфера деятельности — .Net, но в последнее время я как-то занялся Java. Мне нужно создать утилиту оболочки на Java, которая могла бы работать в фоновом режиме, читая несколько записей базы данных по истечении указанного времени, и выполнять дальнейшую обработку. Это своего рода планировщик. Теперь у меня мало забот:

Как заставить это работать как услугу. Я хочу выполнить его через сценарий оболочки, и утилита должна запуститься. Конечно, управление должно вернуться к вызывающему скрипту.

Во-вторых, в конце концов я могу захотеть остановить этот процесс. Как этого добиться?

Я понимаю, что это основной вопрос, но я действительно понятия не имею, с чего начать и какие варианты лучше всего подходят для меня.

Любая помощь / совет, пожалуйста?

задан 10 июн ’10, 08:06

5 ответы

Я бы пошел на запуск программы с помощью планировщика или службы. Однако, если вы хотите использовать bat-файл и делать это программно, я изложил возможный подход ниже:

В вашей программе Java вы можете получить PID программно, а затем записать его в файл:

Читайте также:
Программа как у мармока

Затем вы можете написать стоп-файл .bat, который убьет запущенную программу в Windows. Вы можете сделать что-то вроде:

setlocal IF EXIST app.pid FOR /F %%i in (‘type app.pid’) do TASKKILL /F /PID %%i IF EXIST app.pid DEL app.pid endlocal

Конечно, app.pid — это файл, написанный указанным выше методом Java.

Я не уверен, как вы могли бы написать сценарий, который запускает Java-программу и возвращает управление при завершении. Мне было бы интересно узнать, есть ли у кого-нибудь решение для этого.

Источник: stackovergo.com

Как я могу остановить/запустить приложение Java из командной строки?

у меня есть Java-приложение, которое я запускаю из командной строки с помощью .bat файл, содержимое выглядит следующим образом:

cls rem Starting app set CLASSPATH=.;.lib title App1 starting java app/StartMe

затем запуска и вывода на печать в окне команд. Если я хочу, чтобы остановить приложение, которое я должен Control + C и типа Y . Это довольно раздражает, так как я хочу, чтобы начать / остановить в цикле, и я в настоящее время должны сделать это вручную

как я могу ввести паузу в 30 секунд, а затем остановить Java-приложения?

Я пробовал добавление exit /B к приведенному выше сценарию, но это, похоже, ничего не делает, что я могу сделать, чтобы добавить wait/sleep, а затем остановить процесс Java?

задан Sathya

Количество просмотров материала

29.03.2023 3:04 2930

Распечатать страницу

1 ответ

грубый способ-это ping localhost и перенаправить вывод в NUL для подавления вывода.

ping localhost -n 31 >NUL

вам также нужно будет изменить свой скрипт:

cls rem Starting app set CLASSPATH=.;.lib title App1 starting start java app/StartMe ping localhost -n 31 >NUL taskkill /F /IM java.exe

так что этот сценарий запустит ваше приложение java, подождите 30 секунд и убейте процесс java

отвечен Sathya 2023-03-30 10:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Опубликовать ответ

Похожие вопросы про тегам:

  • Запуск ярлыка с помощью пакетного файла
  • Загрузить папку с cURL и FTP с помощью пакетного файла на Windows?
  • Объединение каталогов без конфликтов перезаписи

command-line

  • Как использовать команду NET SEND из Windows 7 в Windows XP?
  • Arch Linux pacman ошибка при загрузке общих библиотек на Raspberry Pi
  • Простой калькулятор командной строки [закрыт]
  • Автологина 2 пользователей Windows или логин другого пользователя с рабочего стола
  • Dell Studio 1555 обновление до ssd, но компакт-диск не работает
  • Windows 7 может спать, но не может переходить в спящий режим
Читайте также:
1с не удалось найти подходящую программу криптографии для указанного сертификата

Недавние вопросы

  • 7 Какое максимальное количество разделов можно создать на жестком диске?
  • 3 Таблица прилипает к верхней части страницы, как ее удалить?
  • 6 При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
  • 4 Как превратить оглавление в простой форматированный текст?
  • 5 Что значит 1Rx8 и 2Rx8 для оперативной памяти и совместимы ли они?
  • 10 Копирование и вставка в Windows PowerShell
  • 13 Сочетание клавиш для сворачивания удаленного рабочего стола
  • 1 Как включить фон рабочего стола на удаленном компьютере?
  • 5 Как сделать ярлык на рабочем столе доступным для всех пользователей в Windows 10
  • 1 Зачем Windows 10 нужна служба очереди сообщений и почему она установлена по умолчанию?

Недавние публикации

  • Наушники Wireless и True Wireless: чем они отличаются?
  • Не включается iPad: причины и решения проблемы
  • Как ускорить передачу данных по Bluetooth
  • Как правильно приобрести подержанный iPhone?
  • Каковы преимущества фотоэлектрической системы?
  • 5 лучших USB–пылесосов для клавиатуры
  • Как выбрать чехол-аккумулятор для смартфона
  • Мобильный телефон Razr: новая складная раскладушка от Motorola стоит 1200 евро
  • Компания Nothing: смартфон Phone 2 должен быть «более премиальным» и выйти в этом году
  • UMTS — История технологии сотовой связи
  • Выбор домена
  • 3D-печать: будущее массового производства
  • Искусственный интеллект в малом бизнесе: как улучшить эффективность и конкурентоспособность
  • Ошибки, которых стоит избегать при продвижении сайта
  • Высокие технологии в Windows: что это такое и как их использовать в своих приложениях
  • Сварочные столы от производителя
  • Личный помощник по дому: облегчение бытовых забот

Акции IT-компаний [10.06]

Apple $173,24 +0,81%
Amazon $114,49 -1,94%
Microsoft $325,19 +3,61%
Google $123,44 +2,11%
Netflix $364,74 -0,03%
Intel $27,45 -5,34%
Facebook $254,49 +2,11%
Tesla $185,54 +1,44%
Tencent $322,40 -3,01%

Цитата дня

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия.

  • Какое максимальное количество разделов можно создать на жестком диске?
  • Таблица прилипает к верхней части страницы, как ее удалить?
  • При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
  • Как превратить оглавление в простой форматированный текст?

Источник: kompsekret.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru