JNLP可以从网页启动,也可以在客户端桌面启动。但是就算是签过名的jar也会遇到权限和需要添加例外站点的问题。
例外站点可以通过两种方法解决:
1.通过java配置界面
2。手动添加列外站点。
例外站点的文件存储在C:\Users\登录用户名\AppData\LocalLow\Sun\Java\Deployment\security目录下的exception.sites文件中。
在exception.sites文件加入需要添加的例外站点就可以了。
权限问题也可以在两个地方修改。
1.项目打包时:
JavaFX项目(NetBean)在build时生成的jar包中的MANIFEST.MF文件会设置程序的权限如:
默认的权限为sandbox。
遇到这种情况,可以在项目目录下的nbproject文件夹下修改project.properties文件,找到manifest.custom.permissions=修改为manifest.custom.permissions=all-permissions。可以避免JNLP启动时的权限判断问题。
2.修改本地java.policy文件。
java.policy文件在Java\jre1.8.0_45\lib\security目录修改下在文件中加入permission java.security.AllPermission;
jnlp程序是在安全沙箱中运行的。因此用很多权限限制。用两种解决方法:
1. 需要什么样的权限在java.policy里配置。 具体的配置可以参考。但是如果项目里使用了Stream的并行处理。就会出现取不到权限的问题。
2. 把权限管理设为null。
在项目启动时,使用System.setSecurityManager(null);把权限管理设置为null。在项目运行期间就不会再遇到权限管理的问题了。