2016-11-19 40 views
0

我已經嘗試失敗了幾個小時,現在編輯在一個罐子裏的java文件我使用作爲一個庫。我將資源標記爲內容根目錄和源根目錄,但我仍然無法編輯jar中的代碼。該項目編譯並正確運行,但我需要調整一個資源文件,不能;我嘗試了每個我能想到的項目結構。這是不可能的嗎?所有的幫助表示讚賞。在我的IntelliJ JAR資源文件是隻讀的,我需要對它們進行編輯

+0

擴展項目中的資源文件並實現您想要實現的任何內容。 – ifly6

+0

我試圖複製java文件的文本,然後在同一資源目錄中創建一個新的可寫文件,但它給了我這個:「無法修改只讀目錄」。 –

回答

1

不建議編輯JAR文件。從重複性的角度看,最好是:源代碼樹的

  1. 弄個爲圖書館
  2. 檢查它變成版本控制(或叉它在Github上)
  3. 修改並構建它
  4. 使用代替了原來的JAR

另一種方法所產生的JAR是爲「疊加」的CH您希望通過使用替代版本的資源創建另一個JAR並將其放置在應用程序類路徑中的更早版本來完成。

但是,如果沒有這些作品對你的,你可以使用jar命令修改一個JAR文件:

  1. 使用jar -x ...將文件解壓到一個臨時目錄樹
  2. 修改樹
  3. 使用jar -c ....來創建一個新的JAR。

顯然,如果您不是原始簽名人,那麼用新密鑰簽名新的JAR會是一個問題,但我懷疑這與您有關。


1 - 關鍵是,未來的傢伙保持你的代碼需要知道你對JAR庫,你「編輯」什麼,萬一他需要做同樣的方法,用的另一個版本罐。如果你手工操作,他別無選擇,只能對原始版本和編輯版本之間的差異進行法庭比較。這假定仍然可以獲得最初的JAR。請注意,「下一個人」可能是你......在幾個月或幾年的時間裏,當你忘記了你所做的一切。

+0

謝謝,這有很大的幫助。 –

相關問題