2011-10-24 36 views
32

Tôi có một chương trình web nơi tôi muốn người dùng có thể nhập tệp .war và tôi có thể trích xuất một số tệp nhất định ra khỏi tệp .war. Tôi đã tìm thấy hai thư viện lớp học: java.util.zip.*java.util.jar.*. Từ những gì tôi hiểu, một tệp tin WAR là một tệp JAR đặc biệt, đó là một tệp ZIP đặc biệt. Vì vậy, nó sẽ là tốt hơn để sử dụng java.util.jar? Nếu các tệp ZIP và JAR khá giống nhau thì tại sao cần có hai thư viện khác nhau?Cách trích xuất các tệp .war trong java? ZIP vs JAR

+0

Những gì bạn sẽ làm gì với các tập tin bên trong các tập tin chiến tranh? –

Trả lời

17

Nếu bạn nhìn vào API JarFile, bạn sẽ thấy rằng đó là lớp con của lớp ZipFile.

Các lớp cụ thể theo nhóm chủ yếu chỉ thêm chức năng của hàm jar, như hỗ trợ trực tiếp cho thuộc tính tệp kê khai, v.v.

Đó là OOP "đang hoạt động"; vì các tệp jar là các tệp zip, các lớp jar có thể sử dụng chức năng zip và cung cấp tiện ích bổ sung.

+3

Các phiếu giảm giá về các câu trả lời chính xác và được chấp nhận được đánh giá cao. –

0

Như bạn đã nói, một bình một tệp zip (không phải là loại đặc biệt, nhưng chỉ là một zip cũ), do đó thư viện có thể được thực hiện để hoạt động. Lý do là người trung bình, nhìn thấy phần mở rộng * .zip, có xu hướng giải nén nó. Kể từ khi máy chủ ứng dụng muốn nó giải nén, một đổi tên đơn giản giúp mọi người giải nén nó chỉ đơn giản là do thói quen. Tương tự, tệp * .war cũng sẽ không được nén.

java.util.jar về cơ bản chỉ thêm chức năng bổ sung vào java.util.zip với rất ít phí bổ sung. Hãy để java.util.jar trở thành người trợ giúp trong việc đăng bài, v.v ... và sử dụng nó.

0

Lớp/gói Jar là dành cho các cơ chế tệp Jar cụ thể nơi có tệp kê khai được tệp Jar sử dụng trong một số trường hợp.

Lớp/gói tệp Zip xử lý mọi tệp nén bao gồm tệp Jar, là một loại tệp nén.

Các lớp Jar do đó mở rộng các lớp gói Zip.

81

tập tin WAR chỉ là một tập tin JAR, để giải nén nó, chỉ cần vấn đề jar sau lệnh -

jar -xvf yourWARfileName.war 

Nếu lệnh jar không được tìm thấy, mà đôi khi xảy ra trong cửa sổ lệnh của Windows, sau đó xác định đường dẫn đầy đủ tức là trong trường hợp của tôi nó là,

c:\java\jdk-1.7.0\bin\jar -xvf my-file.war 
+0

Tôi sử dụng lệnh này và extrated .war tập tin .. nhưng tất cả những đi vào thư mục bin .. u có thể dán lệnh để chọn giải nén vị trí –

+0

http://stackoverflow.com/questions/15830952/extracting-jar-to-specified -directory –

+1

Trong Java, hỏi OP. –

8

Chỉ cần đổi tên .war vào .jar và giải nén nó bằng cách sử Winrar (hoặc bất kỳ quản lý lưu trữ khác).

1

Nếu bạn sử dụng Linux hoặc Ubuntu, bạn có thể trích xuất trực tiếp dữ liệu từ tệp .war.

Một tập tin war chỉ là một tập tin jar, để giải nén nó, chỉ cần thực hiện lệnh sau đây sử dụng chương trình jar:

jar -xvf yourWARfileName.war 
Các vấn đề liên quan