2009-07-02 49 views
5

Trong bất kỳ ai biết về một công cụ/tập lệnh/chương trình/bất cứ điều gì để tạo một đối tượng java đối tượng từ một đối tượng serialized nhị phân java?Ví dụ đối tượng Deserialized không có định nghĩa lớp

Tôi không có tệp .class, vì vậy tôi không thể (afaik) chỉ cần tạo một ObjectInputStream và tải nó từ đó.

Đối tượng này có cơ chế tuần tự mặc định và tôi đang cố gắng gỡ lỗi một vấn đề mà chúng tôi có.

Bất kỳ ai?

+0

Làm thế nào để bạn kết thúc với một đối tượng được tuần tự hóa không có tệp .class? – ykaganovich

+2

eeerhmmm ... Đó là một lịch sử lâu dài. Đã có một thời gian một nhà phát triển phần mềm ... ohh .. .nevermind. – OscarRyz

+0

Ok, tôi đã tìm thấy tệp .class, chúng nằm bên trong .jar "tệp" (như mong đợi) xảy ra bên trong DB :) Tôi đang thay đổi câu hỏi. Nhận tệp từ blob :) – OscarRyz

Trả lời

0

Tôi nghĩ rằng những gì bạn muốn đạt được là rất giống với this post

+0

Uh? ... Câu trả lời là gì? Sử dụng tuần tự hóa đối tượng/deserialization? Tôi không có tệp .class – OscarRyz

+0

Câu trả lời là lấy tệp .class từ một URL. – Yishai

1

Có một bài khá chi tiết về định dạng trong JavaWorld thời gian gần đây ... Có thể là đáng đọc.

Link: http://www.javaworld.com/community/node/2915

+0

Yeap, một cái gì đó dọc theo dòng này. Tôi biết có một vài công cụ như asm hoặc các công cụ thao tác bytecode khác, nhưng tôi chưa bao giờ sử dụng chúng trước đây, vì vậy tôi không biết công cụ tốt nhất là gì – OscarRyz

0

Tạo một lớp với tên chính xác và serialVersionUID. Triển khai readObject. Sử dụng ObjectInputStream.readFields để nhận số ObjectInputStrem.GetFields.

+0

Tôi đã có InvalidClassException. Tôi đoán tôi cần biết serialVersionUID chính xác là gì. Ngoại lệ trong chuỗi "main" java.io.InvalidClassException: com.o.a.I; mô tả enum có serialVersionUID khác không: 12885773312 – OscarRyz

Các vấn đề liên quan