Sự khác biệt giữa những gì java
, javaw
và javaws
?
Tôi tìm thấy trong Windows hầu hết Java được bắt đầu sử dụng javaw
.
Sự khác biệt giữa những gì java
, javaw
và javaws
?
Tôi tìm thấy trong Windows hầu hết Java được bắt đầu sử dụng javaw
.
Câu trả lời:
Xem tài liệu cho:
java
lệnh 1 / javaw
lệnh 2
- Công
java
cụ khởi chạy một ứng dụng Java. Nó thực hiện điều này bằng cách bắt đầu một môi trường thời gian chạy Java, tải một lớp được chỉ định và gọimain
phương thức của lớp đó .- Các
javaw
lệnh giống hệtjava
, ngoại trừ việc vớijavaw
cửa sổ giao diện điều khiển không có liên quan. Sử dụngjavaw
khi bạn không muốn một cửa sổ nhắc lệnh xuất hiện.
javaws
lệnh , " lệnh Java Web Start "
Các
javaws
vụ phóng lệnh Java Web Start, đó là việc thực hiện tham chiếu Java Network Launching Protocol (JNLP). Java Web Start khởi chạy các ứng dụng / applet Java được lưu trữ trên mạng.
Nếu tệp JNLP được chỉ định,javaws
sẽ khởi chạy ứng dụng / applet Java được chỉ định trong tệp JNLP.
Trìnhjavaws
khởi chạy có một bộ các tùy chọn được hỗ trợ trong bản phát hành hiện tại. Tuy nhiên, các tùy chọn có thể được loại bỏ trong một bản phát hành trong tương lai.
Xem thêm Ghi chú phát hành JDK 9 API, tính năng và tùy chọn không dùng nữa :
Các công nghệ triển khai Java không được chấp nhận và sẽ bị xóa trong một bản phát hành tương lai
Chức năng Java Applet và WebStart, bao gồm API Applet, trình cắm Java, Trình xem ứng dụng Java, JNLP và Java Web Start, bao gồm cảjavaws
công cụ , đều bị phản đối trong JDK 9 và sẽ được gỡ bỏ trong một bản phát hành trong tương lai.
java: Trình thực thi ứng dụng Java được liên kết với bàn điều khiển để hiển thị đầu ra / lỗi
javaw: Trình quản lý ứng dụng ( cửa sổ Java ) không được liên kết với bàn điều khiển. Vì vậy, không hiển thị đầu ra / lỗi. Nó có thể được sử dụng để âm thầm đẩy đầu ra / lỗi sang tệp văn bản. Nó chủ yếu được sử dụng để khởi chạy các ứng dụng dựa trên GUI.
javaws: ( Java web start ) để tải xuống và chạy các ứng dụng web phân tán. Một lần nữa, không có giao diện điều khiển được liên kết.
Tất cả đều là một phần của JRE và sử dụng cùng một JVM.
javaw
có nên trong PATH của tôi không? (Không phải vậy)
java.exe được liên kết với bảng điều khiển, trong khi javaw.exe không có bất kỳ liên kết nào như vậy. Vì vậy, khi java.exe được chạy, nó sẽ tự động mở một cửa sổ nhắc lệnh trong đó các luồng đầu ra và lỗi được hiển thị.
Lệnh javaw giống hệt với java, ngoại trừ javaw không có cửa sổ giao diện điều khiển liên quan. Sử dụng javaw khi bạn không muốn cửa sổ nhắc lệnh được hiển thị. Trình khởi chạy javaw hiển thị một cửa sổ với thông tin lỗi nếu nó không thành công.
Và javaws dành cho các ứng dụng khởi động web Java, applet hoặc đại loại như thế, tôi sẽ nghi ngờ.
Tôi đã kiểm tra rằng chuyển hướng đầu ra hoạt động với javaw
:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Điều đó có nghĩa là, nếu ứng dụng Java in ra bất cứ thứ gì thông qua System.out hoặc System.err, thì nó được ghi vào các tệp đó, cũng như sử dụng java (không có w
). Đặc biệt khi bắt đầu java
, JRE có thể ghi lỗi bắt đầu (không tìm thấy lớp) trên đường ống đầu ra lỗi. Về mặt này, điều cần thiết là phải biết về lỗi. Tôi đề nghị sử dụng chuyển hướng giao diện điều khiển trong mọi trường hợp nếu javaw
được gọi.
Ngược lại nếu bạn sử dụng
start java .... 1>log.txt 2>err.txt
Với lệnh Windows console start
, chuyển hướng đầu ra của giao diện điều khiển không hoạt động java
cũng như không javaw
.
Giải thích tại sao lại như vậy: Tôi nghĩ rằng javaw
sẽ mở một quy trình nội bộ trong HĐH (sử dụng đầy đủ lớp java.lang.Process) và chuyển một chuyển hướng đầu ra đã biết sang quy trình này. Nếu không có chuyển hướng nào được đưa ra trên dòng lệnh, không có gì được chuyển hướng và quá trình bắt đầu bên trong javaw
không có bất kỳ đầu ra giao diện điều khiển nào. Hành vi cho java.lang.Process là tương tự. Máy ảo cũng có thể sử dụng tính năng nội bộ này javaw
.
Nếu bạn sử dụng 'start', bảng điều khiển Windows sẽ tạo một quy trình mới để Windows thực thi lệnh sau khi bắt đầu, nhưng cơ chế này không sử dụng một chuyển hướng nhất định cho quy trình phụ đã bắt đầu, thật không may.
java -cp ...
. Vì hầu như không ai muốn điều đó,javaw
là lựa chọn để làm cho cửa sổ phiền phức đó biến mất.