Tôi đã làm việc trên một dự án Java trong năm. Mã của tôi đã hoạt động tốt trong nhiều tháng. Một vài ngày trước, tôi đã nâng cấp Java SDK lên phiên bản mới nhất 1.6.0_26 trên máy Mac của tôi (Snow Leopard 10.6.8). Sau khi nâng cấp, một cái gì đó rất lạ xảy ra. Khi tôi chạy một số các lớp học, tôi nhận được lỗi này:Truy cập bộ nhớ không hợp lệ của vị trí trong Java
truy cập bộ nhớ không hợp lệ của vị trí 0x202 rip = 0x202
Nhưng, nếu tôi chạy chúng với -Xint (giải thích) họ làm việc, chậm nhưng công việc khỏe. Tôi nhận được vấn đề đó trong các lớp học mà tôi sử dụng các toán tử bitwise (bitboards cho trò chơi Othello). Tôi không thể đặt bất kỳ mã ở đây bởi vì tôi không nhận được một lỗi, ngoại lệ hoặc một cái gì đó tương tự. Tôi chỉ nhận được thông điệp khó chịu đó.
Mã bình thường không chạy mà không có -Xint nhưng nó hoạt động với nó? Tôi nên làm gì?
Cảm ơn trước
Rất lạ. Đây có phải là ngoại lệ không? Lỗi biên dịch? Thứ gì khác? Có thêm văn bản nào trong thông báo lỗi không? Nó có cho biết số dòng không?Chương trình có tiếp tục chạy hay không? Điều đó có xảy ra mỗi khi bạn chạy mã của mình mà không có -Xint không? Bạn đang sử dụng Swing cho GUI của bạn? Có tiềm năng nào cho vấn đề tương tranh không? –
Không được hiển thị dưới dạng ngoại lệ, chỉ là một tin nhắn. Nó biên dịch tốt. Đó là thông điệp duy nhất, đôi khi nó cho thấy một địa chỉ bộ nhớ khác nhau, nhưng chỉ cùng một thông điệp. Chương trình ngừng chạy. Tôi không sử dụng Swing, nhưng tôi đang sử dụng các chủ đề. Nó có thể là một vấn đề tương tranh, nhưng tại sao nó không hoạt động khi chạy như được diễn giải? Đó là phần khó chịu. –
Trông giống như một lỗi trong VM. Cố gắng tách biệt vấn đề bằng cách cắt chương trình của bạn (loại bỏ những gì bạn nghĩ là không cần thiết - nếu nó không xảy ra lần nữa, hoàn tác và thử với một phần khác. Nếu nó vẫn xảy ra, lặp lại). Sau đó gửi lỗi cho bất kỳ ai đã tạo ra JRE của bạn. –