2011-03-11 106 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)。