第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

我的Java程序如何在其.jar文件中存儲(chǔ)文件?

我的Java程序如何在其.jar文件中存儲(chǔ)文件?

犯罪嫌疑人X 2020-02-01 17:06:10
我知道.jar文件基本上是歸檔文件,也屬于應(yīng)用程序。我要問(wèn)的是如何存儲(chǔ)程序中打包的數(shù)據(jù)(實(shí)際文件而不僅僅是字符串)?我想在我的Java代碼中執(zhí)行此操作。如果您想知道的原因是我正在生產(chǎn)一個(gè)游戲的服務(wù)器mod。服務(wù)器啟動(dòng)并創(chuàng)建所有級(jí)別數(shù)據(jù),我想將所有這些文件存儲(chǔ)在我的.jar應(yīng)用程序中。
查看完整描述

3 回答

?
夢(mèng)里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

是的,您可以這樣做。

可以使用來(lái)訪問(wèn)類路徑上JAR文件中的非代碼資源Class.getResourceAsStream(String)。應(yīng)用程序通常會(huì)這樣做,例如,將國(guó)際化消息作為資源包嵌入。

要將文件放入JAR文件,只需在運(yùn)行jar命令之前將其復(fù)制到輸入目錄樹(shù)中的相應(yīng)位置即可。

跟進(jìn)

理論上,在某些情況下,您的應(yīng)用程序可以將文件存儲(chǔ)在其自己的JAR文件中:

  • JAR必須是本地文件系統(tǒng)中的文件。即不是從遠(yuǎn)程服務(wù)器獲取的JAR。

  • 該應(yīng)用程序必須具有對(duì)JAR文件及其父目錄的寫(xiě)權(quán)限。

  • 應(yīng)用程序不必在當(dāng)前的類加載器中回讀它寫(xiě)入JAR的文件。即不退出并重新啟動(dòng)。

  • JAR不必簽名。

該過(guò)程將是:

  1. 找到JAR文件,然后將其作為ZIP存檔閱讀器打開(kāi)。

  2. 創(chuàng)建一個(gè)ZIP歸檔編寫(xiě)器以編寫(xiě)新版本的JAR文件。

  3. 將應(yīng)用程序的文件寫(xiě)入編寫(xiě)器。

  4. 將所有從ZIP讀取器的資源寫(xiě)入寫(xiě)入器,但不包括舊版本的應(yīng)用程序文件。

  5. 關(guān)閉讀者和作家。

  6. 重命名新版本的JAR以替換舊版本。

如果初始JAR被JVM / OS鎖定,則最后一步可能不起作用。在這種情況下,您需要在包裝腳本中進(jìn)行重命名。

但是,我認(rèn)為大多數(shù)人都會(huì)同意這是一個(gè)糟糕的想法。僅編寫(xiě)常規(guī)文件更簡(jiǎn)單,更強(qiáng)大。


查看完整回答
反對(duì) 回復(fù) 2020-02-01
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

其他答案提供了一些不錯(cuò)的策略,但我建議您朝一個(gè)稍微不同的方向前進(jìn)。


該游戲據(jù)說(shuō)具有圖形,是桌面應(yīng)用程序。從Web服務(wù)器分發(fā)桌面應(yīng)用程序是最容易的。


如果您的游戲都符合上述兩個(gè)條件,則可以考慮使用Java Web Start進(jìn)行部署。


JWS提供了其他應(yīng)用程序不可用的API。&PersistenceService是對(duì)此問(wèn)題特別感興趣的一個(gè)。PersistenceService允許應(yīng)用程序存儲(chǔ)和還原少量數(shù)據(jù)。(即使它在沙盒中)。我做了一個(gè)小演示。的PersistenceService。


想法是檢查PersistenceService是否有應(yīng)用程序數(shù)據(jù),如果找不到,請(qǐng)使用Jars中的數(shù)據(jù)。如果用戶/應(yīng)用程序更改了數(shù)據(jù),則將更改后的數(shù)據(jù)寫(xiě)入PersistenceService。


JWS還提供了其他一些不錯(cuò)的功能,例如啟動(dòng)屏幕,桌面集成,自動(dòng)更新。


查看完整回答
反對(duì) 回復(fù) 2020-02-01
  • 3 回答
  • 0 關(guān)注
  • 827 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)