2012-06-02 18 views
0

我正在嘗試將Jena libs,Pellet和一些RPG 2d庫Slick整合到一個applet中。 所以基本上,當我在瀏覽器中運行的小程序我得到這個文件權限錯誤(我用的罐子都簽字):提前Jena + Pellet + Slick in a applet

Exception in thread "Thread-15" java.lang.ExceptionInInitializerError 
    at org.mindswap.pellet.ABox.<init>(ABox.java:208) 
    at org.mindswap.pellet.KnowledgeBase.clear(KnowledgeBase.java:540) 
    at org.mindswap.pellet.KnowledgeBase.<init>(KnowledgeBase.java:418) 
    at org.mindswap.pellet.jena.PelletInfGraph.<init>(PelletInfGraph.java:99) 
    at org.mindswap.pellet.jena.PelletReasoner.bind(PelletReasoner.java:95) 
    at org.mindswap.pellet.jena.PelletReasoner.bind(PelletReasoner.java:53) 
    at com.hp.hpl.jena.ontology.impl.OntModelImpl.generateGraph(OntModelImpl.java:2744) 
    at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init>(OntModelImpl.java:139) 
    at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init>(OntModelImpl.java:128) 
    at com.hp.hpl.jena.rdf.model.ModelFactory.createOntologyModel(ModelFactory.java:410) 
    at RPGGame.GameSelectionScreen.init(GameSelectionScreen.java:170) 
    at RPGGame.RPGGame.initStatesList(RPGGame.java:39) 
    at org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:164) 
    at org.newdawn.slick.AppletGameContainer$Container.initApplet(AppletGameContainer.java:272) 
    at org.newdawn.slick.AppletGameContainer$ContainerPanel.initGL(AppletGameContainer.java:229) 
    at org.newdawn.slick.AppletGameContainer$ContainerPanel.start(AppletGameContainer.java:216) 
    at org.newdawn.slick.AppletGameContainer$1.run(AppletGameContainer.java:92) 
    Caused by: java.security.AccessControlException: access denied  ("java.util.PropertyPermission"  "pellet.configuration" "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 org.mindswap.pellet.PelletOptions.<clinit>(PelletOptions.java:805) 

感謝, 伊萬娜

+1

基於堆棧跟蹤,這是一個權限問題。也許編輯你的問題立即清楚。 –

回答

0

這個錯誤是因爲ABox中正試圖從PelletOptions中讀取信息,這需要加載Pellet配置。它通常會嘗試從jar中讀取它,但首先,它會檢查用戶是否在系統屬性中指定了與默認位置不同的位置。這是造成錯誤的檢查。

你可以修改PelletOptions來始終檢查jar並避免系統屬性檢查,或者你可能能夠旋轉applet安全的東西,使這個好(我不知道這是可能的,從來沒有使用過Applet之前)。

+0

你能告訴一下你指的是什麼?我的意思是,爲避免系統屬性檢查,我應該修改哪些內容和哪些內容? (我應該從pellet-core.jar編輯Pellet.properties文件嗎?) – Ioana