JavaFX System.setProperty管理员权限

时间:2017-05-23 11:54:53

标签: java security javafx jvm

我是否需要管理员权限才能在JavaFX中使用System.setProperty()方法?我真的很困惑阅读documentation

 @exception  SecurityException  if a security manager exists and its
     *             <code>checkPermission</code> method doesn't allow
     *             setting of the specified property.

在什么情况下JVM不允许我设置属性?

如果我的应用程序捆绑,JavaFX应用程序是否有所不同? 感谢。

1 个答案:

答案 0 :(得分:2)

安全管理器与通过“管理员访问”定义的操作系统权限无关。

安全管理器被描述为here。请特别注意:

  

安全管理器是一个定义应用程序安全策略的对象。此策略指定不安全或敏感的操作。安全策略不允许的任何操作都会导致SecurityException被抛出。

  

通常,Web applet与浏览器或Java Web Start插件提供的安全管理器一起运行。除非应用程序本身定义一个,否则其他类型的应用程序通常在没有安全管理器的情如果没有安全管理器,则该应用程序没有安全策略,并且没有任何限制。

因此,在web start下运行的应用程序将具有一个安全管理器,该管理器允许由JNLP文件配置的操作(并且仅允许对已签名的应用程序执行提升的操作)。

除非您不遗余力地改变这一点,否则作为“普通”桌面应用程序运行的独立应用程序将没有安全管理器,并且其操作不会受到限制。特别是,如果没有安全管理器,那么根据您引用的文档:

@exception  SecurityException  if a security manager exists and its
     *             <code>checkPermission</code> method doesn't allow
     *             setting of the specified property.

不会抛出SecurityException