2011-11-15 68 views
2

我有一個已簽名的小程序,其中我使用JFilechooser從本地文件系統瀏覽文件進行上載。它在Windows和Mac中正常運行。但在Linux中,它顯示錯誤訪問被拒絕(java.util.PropertyPermission user.home讀取)。我在網上搜索,發現一個solution。我做了相應的,但無法解決問題。java.util.PropertyPermission user.home讀取(拒絕訪問)

我在我的home文件夾中創建了文件.java.policy文件。

grant codeBase "http://bioinfo.utu.fi/applet/*" { 
    permission java.io.FilePermission "/home/raj/-", "read"; 
    permission java.io.FilePermission "/home/raj/-", "write, delete"; 
}; 

我無法在Linux下的JFileChooser對話當我點擊 「瀏覽」 按鈕,但顯示異常:拒絕訪問(java.util.PropertyPermission的user.home讀)。我如何在Linux中運行它? 我感謝您的幫助。

最近更新:

我搜索java.policy文件從終端

[[email protected] Desktop]$ locate java.policy 
/home/raj/.java.policy 
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/security/java.policy 

我添加下列行中的文件/usr/lib/jvm/java-1.6.0-openjdk -1.6.0.0/jre/lib/security/java.policy

grant{ 
    ... 
    ... 
    permission java.util.PropertyPermission "user.home", "read"; 
     permission java.io.FilePermission "/home/raj", "read"; 
    permission java.io.FilePermission "${user.home}${/}*", "read,write"; 

    } 

Noe我可以看到JFileChoose對話。現在我又遇到了一個問題。在applet文件選擇器對話框中,我看不到主目錄中的文件。

+0

我該如何使瀏覽按鈕在Linux上工作? – World

+0

所以你已經解決了題目中的問題,你現在有一個不同的問題?時間關閉這一個。 – EJP

回答

-1

問題可能要深得多,似乎...

你檢查過的user.home有沒有一個小程序,但本地UTIL?它是「?」或不是絕對路徑?

我建議您使用System.getProperty(「user.home」)檢查它,但使用桌面util;

此外,還可能存在客戶機問題,如32位JDK。這是一個衆所周知的bug所以也許這就是問題所在。

請報告幫助

+0

我嘗試使用桌面應用程序。的System.out.println(System.getProperty( 「的user.home」))。它顯示正確的主目錄。我知道的是,applet需要兩個權限java.io.FilePermission和java.util.PropertyPermission。我在java.policy文件中添加了兩個權限。現在我可以看到JFileChoose對話框,但無法在主目錄中看到任何文件。 – World

+0

Emm ...你是否試圖使用user.home作爲你的jfilechooser的起點?作爲一個嘗試設置一些不同的起點;我的意思是這種方法http://docs.oracle.com/javase/1.5.0/docs/api/javax/swing/JFileChooser.html#setCurrentDirectory%28java.io.File%29;請報告,幫助 – user592704

+0

並告訴我你的linux jre版本please – user592704

相關問題