我正在製作一個遊戲,並且製作了一個可以從user.home目錄加載遊戲的JFrame加載器,但最近決定我想讓它在一個web applet中好。簽名applet加載簽名jar閱讀文件錯誤
當我運行JFrame加載器時,它成功加載遊戲,檢查文件並打開。 (包括遊戲和JFrame的簽署) 我可以加載並使用從Applet的罰款調用方法:
m.invoke(null, (Object) new String[]{textPack, font, currVersionStr,saveDir}, null, null, this);
但隨後會出現以下錯誤,當小程序試圖加載它,它管理加載遊戲罰款但是,當它試圖用代碼來加載保存選項:
File f = new File(OS.saveDir + OS.fileSeparator + "Options.keys");
if (!f.exists()) {
try {
f.createNewFile();
saveKeys();
} catch (IOException ex) {
Logger.getLogger(Configuration.class.getName()).log(Level.SEVERE, null, ex);
}
它給了我下面的錯誤:
Mar 14, 2013 11:10:21 PM core.GameEngine run SEVERE: null java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Users\Jake.Zombies\Options.keys" "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.checkRead(Unknown Source) at java.io.File.exists(Unknown Source) at core.Configuration.loadKeys(Configuration.java:123) at core.Configuration.onStartup(Configuration.java:105) at core.GameEngine.run(GameEngine.java:76)
隨着行,如果是Configura(f.exists()!) tion.java:123
我的問題是,它加載在JFrame中加載罰款(簽字),但不是小程序(簽名)
任何幫助非常感謝,謝謝。
編輯:小程序加載器檢查文件,並可以下載最新的罰款。只有當我問遊戲加載時,纔會加載遇到問題的文件。
編輯2(滿載代碼):
File folder = new File(saveDir);
URL u = new URL("jar:" + folder.toURI().toURL() + "Zombies.jar!/");
URLClassLoader ucl = URLClassLoader.newInstance(new URL[]{u});
Class c = Class.forName("Visual.GameDisplay", true, ucl);
Method m = c.getMethod("main", String[].class, String[].class, java.sql.Connection.class, Component.class);
m.invoke(null, (Object) new String[]{textPack, font, currVersionStr,saveDir}, null, null, this);
由剛開緩衝輸入流,然後將其寫入到的BufferedOutputStream寫入。
謝謝,但我認爲只有當他們沒有簽名時,考慮到它可以製作和寫入文件? – Fallboo 2013-03-14 23:21:55
簽名無關緊要。 – 2013-03-14 23:22:11
我使用Netbeans生成的「launch.html」,我已經添加了關於如何加載其他jar的代碼,以及如何從Web下載文件並將它們存儲在文件夾中的小說明。 – Fallboo 2013-03-14 23:27:00