2011-03-11 67 views
1

试图通过java web start运行我的程序。在输出控制台中出现以下异常。即时通讯新的Java Web开始,所以你们有任何想法?Java Web Start的问题

仅供参考,这里是66行

ConfigFileReader cfg = new ConfigFileReader(BCApp.getConfigFileLocation());

 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sun.javaws.Launcher.executeApplication(Unknown Source) 
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source) 
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
    at com.sun.javaws.Launcher.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ExceptionInInitializerError 
    at JCS.Main$setStyle.setStyle(Main.java:66) 
    at JCS.Main.main(Main.java:57) 
    ... 9 more 
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission java.io.tmpdir read) 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) 
    at java.lang.System.getProperty(Unknown Source) 
    at GUI.BCApp.(BCApp.java:60) 
    ... 11 more 

回答

2

你会想对security manager读了。由于通过Java Web Start启动的代码可能会对客户端计算机造成严重损害,因此通常不允许执行许多事情。文件系统访问就是其中之一。有几种方法可以让您的Java Web Start应用程序访问文档中详述的文件系统。

+0

在这种情况下,试图读取不受信任的上下文中不允许的系统属性。 – 2011-03-11 20:05:46

+0

所以我在服务器上签了我的jar。我有一个扩展名为.cer的文件。就客户端而言,我如何处理这个文件? – user489041 2011-03-11 20:18:37

+0

@ user489041 - 用[密钥工具(http://download.oracle.com/javase/1.5.0/docs/guide/plugin/developer_guide/rsa_signing.html)作为将.cer说明。听起来像你已经使用jarsigner,但如果不这样做。这之后你的罐子应该签署,用户可以接受的签名(或它会自动如果从值得信赖的权威之一接受)。 – justkt 2011-03-12 13:22:53

1

你WS应用程序的安全沙箱环境,这意味着它不具备对文件系统的访问运行,除非A)您的应用程序进行数字签名或b)您可以修改您的安全设置(不推荐BTW)。