2011-12-11 47 views
7

我有一個名爲myfile.jar的.jar文件。在這個jar文件裏面有一個名爲images的文件夾。在這個名爲images的文件夾中,我有一張名爲hi.png的圖片。我想用該圖像的新版本更新該圖像,該圖像也稱爲hi.png。我不想從單個jar文件中提取所有文件,然後重新打包它們,我只是想更新圖像。所以,我去命令行像往常一樣,鍵入幾行代碼,然後我做這個命令:如何在不重新打包整個罐子的情況下更新罐子中的一個文件?

jar uf myfile.jar -C images hi.png 

我希望用這個命令做的是用新的來代替舊hi.png hi.png。但是,它給了我這個錯誤:

images\hi.png : no such file or directory 

我該如何解決這個問題?

額外信息:我不能使用像WinRAR這樣的東西,我必須用命令行來做到這一點。

+0

** **的jar文件也** **壓縮文件,因此該功能打包[zip工具(http://linux.about.com/ od/commands/l/blcmdl1_zip.htm)可以對它們進行操作。如果您使用的是非Windows操作系統,則應該安裝它。 (我認爲MacOS會擁有它,但我無法驗證。) – FakeRainBrigand

+0

不確定你的設計在這裏......但7Zip有很棒的命令行支持。只是要小心,罐子的規格是挑剔的拉鍊的確切類型。其次,如果這是基於web的話,你可以使用擴展的jar。而且...如果它不是基於網絡的(單個客戶端),爲什麼不只是從./images/hi.png加載圖像。 TL; DR;如果您在文件系統上交換文件系統,那麼以簡單的方式進行。 –

+0

你在做什麼目錄(以及相對於你的cwd的圖片和hi.png)? –

回答

19

-C正在改變本地目錄,並且正在尋找hi.png那裏。它不控制你試圖將它注入JAR文件的位置。

我會嘗試做一個名爲images新目錄,移動本地hi.png成,使得images當前工作目錄的子目錄,然後只需運行此:

jar uf myfile.jar images\hi.png 
+0

它仍然給我,錯誤圖像\ hi.png:沒有這樣的文件或目錄 –

+1

嘗試圖像/ hi.png以及。 – joev

+0

我只是實際測試過這一點,它按預期工作。確保你的工作目錄是包含「圖像」的目錄。你可以顯示命令提示符的輸出,顯示目錄結構和你正在嘗試的確切命令嗎? – ziesemer

2

如果你想編輯文本文件,你可以直接用vim來完成。

(假設你有unzip可用,例如yum install -y unzip在CentOS)

vim my.jar

+0

.jar文件不是文本文件。 – EJP

5

使用7-ZIP軟件做最簡單的方法。對於

  1. 編輯文件:

    • 打開jar文件的7-Zip |打開檔案
    • 轉到文件例如/Meta-Inf/xyz.conf
    • 點擊鼠標右鍵,選擇選項
    • 編輯文件「開放」,並保存文件
    • 關閉7-ZIP控制檯,它的完成。
  2. 對於添加/替換/刪除文件。

    • 按照前兩個步驟,直到到達所需的文件夾。
    • 刪除:刪除文件
    • 添加:拖放文件拖放到7-ZIP控制檯。
    • 關閉控制檯,並完成。
1

可以使用jar -uf sample.jar [path in jar file]target-file

相關問題