2010-01-04 34 views
132

Gần đây tôi đã lưu ý rằng một số ứng dụng đang chạy trên javaw (không phải trong java). Sự khác biệt giữa chúng là gì và làm thế nào tôi có thể chạy ứng dụng Swing của tôi trên javaw?Sự khác biệt giữa java.exe và javaw.exe

+1

Câu hỏi tương tự và câu trả lời hay ở đây: http://stackoverflow.com/a/8194750/99717. Lưu ý rằng câu hỏi đó cũng yêu cầu về javaws.exe, vì vậy không phải về mặt kỹ thuật ... –

Trả lời

67

java.exe là lệnh mà nó chờ đợi cho các ứng dụng để hoàn thành cho đến khi nó mất tiếp theo chỉ huy. javaw.exe là lệnh sẽ không chờ ứng dụng hoàn tất. bạn có thể tiếp tục với một lệnh khác.

+0

không javaw.exe cũng không hiển thị đầu ra giao diện điều khiển https://www.youtube.com/watch?v=AQUAyJYwJ6Q 0:57 http://i.imgur.com/TGsm45f.png – barlop

102

java.exe là ứng dụng giao diện điều khiển trong khi javaw.exe là ứng dụng windows (console-less). Bạn không thể có Console với javaw.exe.

+4

Tôi sẽ thêm rằng "ứng dụng giao diện điều khiển" ở đây không nhất thiết có nghĩa là "điều này đã được chạy từ bảng điều khiển", chỉ có ' java.exe' được phép truy cập vào giao diện điều khiển của nó. Ví dụ, việc chạy một applet từ bên trong một trình duyệt trên Windows, luôn sử dụng 'java.exe' ngay cả khi Bảng điều khiển Java của tôi được đặt thành _Hide cửa sổ giao diện điều khiển_ hoặc thậm chí _Không bắt đầu một cửa sổ giao diện điều khiển_. –

+0

Câu trả lời sau có vẻ tốt hơn cho tôi và có tài liệu tham khảo tài liệu Java: http://stackoverflow.com/a/8194750/99717 –

12

Lệnh javaw.exe giống hệt java.exe, ngoại trừ việc với javaw.exe không có giao diện điều khiển cửa sổ liên

+6

Về mặt kỹ thuật chính xác hơn: Với 'javaw' không có giao diện * liên quan *. Cửa sổ không nhất thiết phải được tạo (ví dụ, khi bạn chạy từ một cửa sổ bảng điều khiển hiện có hoặc hoàn toàn ở chế độ nền). – Joey

37

Sự khác biệt nằm trong subsystem rằng mỗi mục tiêu có thể thực thi.

  • java.exe nhắm mục tiêu hệ thống con CONSOLE.
  • javaw.exe nhắm mục tiêu hệ thống con WINDOWS.
Các vấn đề liên quan