Więc muszę usunąć plik z pliku jar / war. Miałem nadzieję, że pojawiło się coś takiego jak „jar -d myjar.jar file_I_donot_need.txt”
Ale w tej chwili jedynym sposobem, w jaki mogę to zrobić z mojego wiersza poleceń Linuksa (bez używania WinRAR / Winzip lub odpowiednika Linuksa), jest
- Wykonaj „jar -xvf” i wyodrębnij
cały plik JAR - Usuń pliki, których nie potrzebuję
- Odtwórz plik jar za pomocą polecenia „jar -cvf”
Proszę, powiedz mi, że istnieje krótsza droga?
./myscript.sh -d <list of files>
Odpowiedzi:
jar to w końcu tylko plik zip. Zdecydowanie dużo szybciej niż dekompresja / rekompresja.
źródło
zip
iw tym przypadku ważne jest określenie formatu pliku:7z d -tzip file.jar dir/unwanted_file.txt
zip -d file.jar unwanted_folder/
W Javie możesz skopiować wszystkie wpisy z jar z wyjątkiem tego, który chcesz usunąć. tzn. musisz wykonać kopię, ale nie musisz tworzyć pojedynczych plików.
Możesz to zrobić przez
źródło
W przypadku, gdy chcesz usunąć plik w celu wyrejestrowania podpisanego pliku jar, prawdopodobnie możesz po prostu ustawić plik .RSA o zerowym rozmiarze. Można to osiągnąć za pomocą just
jar u
. Zobacz https://stackoverflow.com/a/24678645/653539 . (U mnie zadziałało, chociaż przyznaję, że to hack).źródło