2010-07-13 29 views

Trả lời

6
jar xvf thewar.war /path/to/jar/inside/war #extract the file...  
jar tvf /path/to/jar/indide/war.jar # read the extracted jar 
rm /path/to/jar/inside/war # remove it 

Tôi vừa làm điều này và không xóa tệp tôi đã trích xuất khỏi chiến tranh. Vui lòng xác minh rằng mặc dù ...;)

+0

rõ rằng sẽ là quá đơn giản: -) Hãy để tôi thuật lại câu hỏi của mình bằng ví dụ $ ls myWarFile.war $ jar -tvf myWarFile.war | grep myJarFile WEB-INF/myJarFile.jar câu hỏi là, làm cách nào để xem nội dung của myJarFile.jar "mà không trích xuất nội dung của myWarFile.war" .. có một lối tắt không? – sunny8107

+0

tùy chọn 't' có nghĩa là chỉ hiển thị nội dung, nó không thực sự trích xuất chiến tranh. từ trang người đàn ông: t Liệt kê mục lục từ jarfile (nếu f được chỉ định) hoặc đầu vào tiêu chuẩn (nếu bỏ qua f và jarfile). Nếu inputfiles được chỉ định, chỉ những tệp và thư mục được chỉ định được liệt kê. Khác- khôn ngoan, tất cả các tệp và thư mục được liệt kê. – hvgotcodes

+0

aah i see. người đàn ông tôi luôn đọc câu hỏi sai. Bạn có một tập tin jar bên trong một cuộc chiến, và muốn nhìn thấy cái bình. Trong trường hợp đó, chỉ trích xuất lọ từ chiến tranh, sau đó liệt kê các nội dung, sau đó xóa tệp được trích xuất ... đã chỉnh sửa câu trả lời của tôi ở trên với tất cả các bước ... – hvgotcodes

0

Tôi nghĩ rằng bức ảnh đẹp nhất của bạn là phỏng đoán, nhưng điều đó không đáng tin cậy lắm.

Một kho lưu trữ nén (awar không là gì khác) chứa một bảng nội dung và tệp được đóng gói. Không có cách nào để truy cập nội dung của bất kỳ tệp được đóng gói nào mà không cần giải nén chúng trước.

1

Nếu bạn mở chiến tranh ở chế độ 7-zip, bạn cũng có thể mở các lồng lồng nhau.

tôi luôn luôn sử dụng kịch bản này khi tôi muốn tìm kiếm hoặc grep tất cả các lớp và các file khác trên classpath trong một cuộc chiến tranh (nó trích xuất các tập tin chiến tranh mặc dù)

#!/bin/bash 
# 
# Unzips all the libs in a war 
set -o errexit 
set -o nounset 
mkdir -p contents 
cd contents 
unzip $1 
mkdir -p jars 
cd jars 
for jar in ../WEB-INF/lib/*.jar; do 
    basejar=$(basename $jar) 
    mkdir -p "$basejar" 
    unzip -o "$jar" -d "$basejar" 
done 
Các vấn đề liên quan