Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Можно использовать инструменты окон командной строки tasklist
и taskkill
и назвать их от Java с помощью Runtime.exec()
.
Вы могли использовать инструмент командной строки для уничтожения процессов как SysInternals PsKill и SysInternals PsList.
Вы могли также использовать сборку - в tasklist.exe и taskkill.exe, но те только доступны на Windows XP Professional и позже (не в Home Edition).
Использование java.lang. Runtime.exec для выполнения программы.
Необходимо будет назвать некоторый собственный код, с тех пор по моему скромному мнению, нет никакой библиотеки, которая делает это. Так как JNI является громоздким и твердым, Вы могли бы попытаться использовать JNA (Собственный Доступ Java). https://jna.dev.java.net /
Существует небольшой API, обеспечивающий желаемую функциональность:
https://github.com/kohsuke/winp
Библиотека процессов Windows