2009-12-10 19 views
12

Chúng tôi có một ứng dụng máy tính để bàn bằng cách sử dụng JNI đôi khi khiến JVM gặp sự cố. May mắn là JVM tạo ra tệp hs_err_pidXXXX.log, điều này khá hữu ích trong việc gỡ lỗi như vậy. Tuy nhiên, nó luôn luôn có vẻ đi đến thư mục làm việc hiện tại, và nó khó chịu để đào nó từ đó, vì các tệp nhật ký khác của chúng ta đều đi đến một "vị trí tệp nhật ký" cụ thể.Có thể chỉ định nơi các bãi đổ vỡ của JVM đi không?

Có thể chỉ định vị trí khác cho các tệp "đổ đổ sự cố" đó không? Làm sao?

Trả lời

12

Joonas,

Mặc dù HeapDumpPath làm việc cho các đống đổ nó không phải là câu trả lời cho câu hỏi của bạn. Vùng heap và nhật ký sự cố jvm là hai thứ riêng biệt.

Để thay đổi đích đến của JVM sụp đổ log chạy java với tùy chọn này:

-XX:ErrorFile=/path/to/file. 

path/to/file là nơi bạn muốn nhật ký sự cố JVM để đầu ra.

+0

cách chạy Java bằng tùy chọn này? Tôi không thể làm điều đó thông qua cmd –

+1

@MuhammedRefaat Trên bảng điều khiển: 'java -XX: ErrorFile =/path/to/file.log -jar myapp.jar' – sja

+0

@sja cảm ơn rất nhiều –

9

Theo mặc định, vùng đệm được tạo trong tệp có tên java_pidpid.hprof trong thư mục làm việc của máy ảo. Bạn có thể chỉ định tên hoặc thư mục thay thế bằng tùy chọn -XX: HeapDumpPath =. Ví dụ: -XX: HeapDumpPath =/disk2/dumps sẽ gây ra vùng heap được tạo trong thư mục /disk2/dumps.

+1

-1 Câu hỏi liên quan đến nhật ký sự cố, không phải đống đổ nát khi câu trả lời được chấp nhận chỉ ra. Đây vẫn là thông tin tốt nhưng không phải là câu trả lời cho câu hỏi này. –

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