2010-01-06 33 views
38

Trong một kịch bản shell, tôi đã thiết lập các biến môi trường JAVA_OPTS (để cho phép gỡ lỗi từ xa và tăng trí nhớ), và sau đó tôi chạy file jar như sau:Chạy java với JAVA_OPTS env biến

export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Xms512m -Xmx512m" 
java -jar analyse.jar $* 

Nhưng nó dường như không có tác dụng của biến env JAVA_OPTS vì tôi không thể kết nối với gỡ lỗi từ xa và tôi thấy không có thay đổi về bộ nhớ cho JVM.

Điều gì có thể là vấn đề?

PS: Tôi không thể sử dụng các cài đặt đó trong lệnh java -jar analyse.jar $* vì tôi xử lý đối số dòng lệnh trong ứng dụng.

Trả lời

39

Tôi không biết bất kỳ JVM nào thực sự kiểm tra biến môi trường JAVA_OPTS. Thông thường, điều này được sử dụng trong các tập lệnh khởi chạy JVM và chúng thường chỉ thêm nó vào dòng lệnh java.

Điều quan trọng phải hiểu ở đây là lập luận để java mà đến trước bit -jar analyse.jar sẽ chỉ ảnh hưởng đến JVM và sẽ không được thông qua cùng với chương trình của bạn. Vì vậy, sửa đổi dòng java trong tập lệnh của bạn thành:

java $JAVA_OPTS -jar analyse.jar $* 

Nên "chỉ hoạt động".

+0

Xem câu trả lời của HEX. Đó là cách bạn đặt các tùy chọn sử dụng biến môi trường trên OS X. – BitwiseMan

72

Bạn có thể thiết lập _JAVA_OPTIONS thay vì JAVA_OPTS. Điều này sẽ hoạt động mà không cần $_JAVA_OPTIONS.

+6

_This_ đây là câu trả lời thực sự. Tôi đã đi xung quanh hàng giờ để tìm ra điều này. – BitwiseMan

+0

Tôi đã thử tính năng này trên Windows XP. Didnt work .. :( – Nerrve

+3

@Nerrve Đặc biệt cho bạn đã cài đặt Windows XP. Hoạt động tốt Bạn có chắc bạn đã làm mọi thứ chính xác không? – HEX

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