【发布时间】:2016-03-01 03:06:20
【问题描述】:
我正在尝试课程SecurityManager。我想检查当前线程是否有权限退出Java虚拟机。下面是我想出的代码。
SecurityManager appsm = System.getSecurityManager();
System.out.println("something");
appsm.checkExit(0);
我期待SecurityManager.checkExit 抛出SecurityException。但是,IDE 改为输出 NullPointerException。
Exception in thread "main" java.lang.NullPointerException
at jtotheplatformenvironment.JTOThePlatformEnvironment.main(JTOThePlatformEnvironment.java:40)
C:\Users\Justin\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
为什么会这样?
【问题讨论】:
-
java 默认情况下不使用 SecurityManager 运行,因此您将获得 NPE。您必须在启用 SecurityManager 的情况下启动您的程序。
-
@非常感谢您的建议!如何在程序开始时启用 SecurityManager?
标签: java multithreading securitymanager