2010-02-02 43 views
6

Tôi có tệp jar được sử dụng trong tệp html dưới dạng applet. Tôi muốn sửa đổi nội dung của tệp jar và xây dựng lại tệp jar sao cho html sẽ hoạt động tốt với tệp jar mới. Tôi có thể làm cái này như thế nào??Sửa đổi tệp jar

Tôi đã cố gắng giải nén bằng cách sử dụng 7zip nad đã sửa đổi nguồn và tạo jar mới. Nhưng khi tôi sử dụng nó trong html nó cho thấy một số lỗi java.lang.Classnotfound

+0

Bạn có ý nghĩa gì khi "sửa đổi nội dung"? Bạn đang nói về mã hoặc về tài nguyên (hình ảnh, v.v.) trong bình? –

+0

nếu câu trả lời của bạn cho nhận xét @mmyers là có thì Winrar FTW ............... –

Trả lời

12

Bạn có thể mở hoặc rejar các lớp và tệp nguồn như bạn muốn.

unjar

jar -xvf abc.jar 

jar

jar cf abc.jar input-files 

http://docs.oracle.com/javase/tutorial/deployment/jar/build.html

+0

được chuyển đến: http://docs.oracle.com/javase/tutorial/deployment/jar/ build.html –

+1

Cảm ơn.Tôi đã cập nhật liên kết. – Yada

0

lọ chỉ ZIP file, sử dụng bất cứ tiện ích mà bạn thích và sửa đi!

1

Tuyên bố từ chối trách nhiệm: Khi kỹ thuật đảo ngược bất kỳ mã nào chắc chắn rằng bạn đang ở trong giới hạn của luật pháp và tôn trọng giấy phép của mã đó.

Làm theo hướng dẫn ở trên để giải nén JAR.

Tìm nguồn gốc của JAR (có lẽ trên SourceForge) và tải xuống nguồn, sửa đổi nguồn và xây dựng lại JAR của riêng bạn.

Bạn cũng có thể dịch ngược các tệp lớp trong JAR. Đây là một quá trình khá tiên tiến và có rất nhiều "gotchas".

2

Thực hiện các thay đổi trong mã (tệp .java), biên dịch lại để nhận tệp .class. Sau đó, chỉ cần thay thế các tệp .class cũ trong lọ bằng các tệp mới. Tôi thường sử dụng WinZip, nhưng bạn có thể sử dụng bất kỳ ứng dụng nào có thể xử lý các tệp .Zip. Nó chỉ nên hoạt động.

Tôi đã gặp trường hợp trình khởi chạy ứng dụng sử dụng một số loại xác minh và kiểm tra loại thay đổi này. Tôi đã phải sử dụng một kịch bản khởi động mới. Điều này dường như không phải là trường hợp của bạn mặc dù.

1

Điều này chắc chắn có thể thực hiện được từ dòng lệnh. Sử dụng tùy chọn u cho jar

Từ Hướng dẫn Java:

jar uf jar-file input-file(s) 

"Bất kỳ file đã có trong các kho lưu trữ có tên đường dẫn giống như một tập tin được thêm vào sẽ được ghi đè."

Xem Updating a JAR File

Một thử nghiệm ngắn ngủi cho thấy điều này một cách nhanh chóng cập nhật những thay đổi ngoài việc cố gắng để xóa các tập tin.

Tôi chưa thấy câu trả lời này trên các chủ đề khác về sửa đổi tệp jar và nhiều câu được đánh dấu là trùng lặp, đề xuất không có cách nào khác ngoài việc làm lại bình hoàn toàn. Vui lòng sửa nếu sai.