2013-04-01 24 views
12

Tôi đang bắt đầu một cái bình có thể chạy được từ một ứng dụng java (cũng có thể sử dụng jar không đầu). Đã thử cả phương thức Runtime.getRuntime().exec()ProcesBuilder. Quá trình này được khởi chạy tốt, nhưng trên Mac (10.6) nó cho thấy tên của cái bình tôi đang bắt đầu trong thanh trình đơn chính và cũng đặt trong dock Có cách nào để ngăn chặn điều đó không? Điều thú vị là, nếu bạn bắt đầu một jar với java -jar từ dòng lệnh, tên jar không xuất hiện trong thanh trình đơn hoặc dock quá trình. Bất kỳ ý tưởng nào? Cảm ơn AndyNgăn chặn tên ứng dụng java xuất hiện trên thanh trình đơn và thanh công cụ trên máy Mac

+0

thể trùng lặp của [tiến trình nền Ngăn chặn hiển thị trên Dock] (http: // stackoverflow.com/questions/15742976/prevent-background-process-from-showing-up-on-dock) –

Trả lời

8

Bạn có đang đi qua java.awt.headless=true không? Thử thêm này để quá trình của bạn:

java -Djava.awt.headless=true

25

Để kích hoạt nó thay vì toàn cầu của việc thêm tùy chọn cho mỗi quá trình, thiết lập biến JAVA_TOOL_OPTIONS như thế này trong .bashrc của bạn/zshrc khởi động kịch bản.

JAVA_TOOL_OPTIONS xuất khẩu = '- Djava.awt.headless = true'

tham khảo ở đây:

http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/envvars.html

+0

Không phải tất cả các ứng dụng Java đều tôn trọng 'JAVA_OPTS', và khi chúng làm điều đó bởi vì có mã trong kịch bản lệnh shell của ứng dụng để xử lý nó. Cài đặt 'JAVA_OPTS' sẽ không ảnh hưởng đến bất kỳ thứ gì bạn chạy trực tiếp với' java -jar' hoặc khi bạn nhấp đúp vào tệp JAR trong Trình tìm kiếm. –

+0

Tôi đã sửa nó và xác minh nó hoạt động. Cảm ơn phản hồi của bạn. – arcot

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