'java', 'javawv 및'javaws '의 차이점


184

무엇의 차이입니다 java, javaw그리고 javaws?

Windows에서 Java의 대부분이를 사용하여 시작되었습니다 javaw.


2
Windows에서 프로그램을 시작할 때마다 포 그라운드에서 실제 터미널 ( "터미널"이라고도 함)을 시작하는 성가신 습관이 있기 때문입니다 java -cp .... 거의 아무도 그것을 원하지 javaw않기 때문에 성가신 창을 사라지게하는 선택입니다.
Matthieu

답변:


212

다음에 대한 설명서를 참조하십시오.

  • java명령 1 / javaw명령 2
    1. java도구는 Java 응용 프로그램을 시작합니다. Java 런타임 환경을 시작하고 지정된 클래스를로드 한 후 해당 클래스의 main메소드를 호출하여이를 수행합니다 .
    2. javaw명령은 동일 java이있는 경우를 제외하고, javaw어떤이 연결되어 콘솔 창. 사용 javaw당신이 하지 않는 명령 프롬프트 창을 표시 할.
  • javawscommand , " Java Web Start 명령"

    javaws명령은 JNLP (Java Network Launching Protocol)의 참조 구현 인 Java Web Start를 시작합니다. Java Web Start는 네트워크에서 호스팅되는 Java 응용 프로그램 / 애플릿을 시작합니다.

    JNLP 파일이 지정되면 JNLP 파일에 지정된 javawsJava 응용 프로그램 / 애플릿이 시작됩니다. 실행은 현재 릴리스에서 지원되는 옵션이 있습니다. 그러나 이후 릴리스에서는 옵션이 제거 될 수 있습니다.

    javaws

    참조 JDK 9 릴리스 노트되지 않는 API는, 특징 및 옵션 :

    자바 배포 기술은 더 이상 사용되지 않으며 추후 릴리스에서 제거 될 예정입니다
    포함 애플릿 API, 자바 플러그인, 자바 애플릿 뷰어, JNLP 및 Java Web Start를 포함한 자바 애플릿과 웹 시작 기능, javaws도구 모두, JDK에서 사용되지 않는 9 는 향후 릴리스에서 제거 될 예정입니다.


69

java : 출력 / 오류를 표시하기 위해 콘솔과 연관된 Java 응용 프로그램 실행 프로그램

javaw : ( Java windowed ) 애플리케이션 실행 프로그램이 콘솔과 연관되지 않았습니다. 따라서 출력 / 오류 표시가 없습니다. 출력 / 오류를 자동으로 텍스트 파일로 푸시하는 데 사용할 수 있습니다. GUI 기반 응용 프로그램을 시작하는 데 주로 사용됩니다.

javaws : ( Java web start )를 사용하여 분산 웹 애플리케이션을 다운로드하고 실행하십시오. 다시 말하면 콘솔이 연결되어 있지 않습니다.

모두 JRE의 일부이며 동일한 JVM을 사용합니다.


JRE를 설치 한 경우 javawPATH에 있어야합니까? (아니)
endolith

@endolith, Windows에서의 Java 설치는 내 경험상 PATH 변수에 아무것도 추가하지 않습니다. JRE 만 설치 한 경우 JRE / bin 디렉토리를 PATH에 수동으로 추가해야합니다. JRE 및 JDK를 설치 한 경우 대신 JDK / bin을 PATH에 추가하십시오.
mcduffee

9

java.exe 는 콘솔과 관련이 있지만 javaw.exe 는 그러한 연관성을 갖지 않습니다. 따라서 java.exe 가 실행되면 출력 및 오류 스트림이 표시되는 명령 프롬프트 창을 자동으로 엽니 다.


6

에서 http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :

javaw 명령에는 java와 동일하지만 javaw에는 연관된 콘솔 창이 없습니다. 명령 프롬프트 창을 표시하지 않으려면 javaw를 사용하십시오. javaw 실행기는 실패하면 오류 정보가있는 창을 표시합니다.

그리고 javaws는 Java 웹 시작 응용 프로그램, 애플릿 또는 이와 유사한 것입니다.


링크가 끊어졌습니다 : "요청한 페이지가 없거나 이동했을 수 있습니다."
Peter Mortensen

1

출력 리디렉션이 다음과 작동하는지 확인했습니다 javaw.

javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt

즉, Java 응용 프로그램이 System.out 또는 System.err을 통해 무언가를 인쇄하는 경우 java (without w) 를 사용하는 경우와 마찬가지로 해당 파일에 기록됩니다 . 특히 시작시 javaJRE는 오류 출력 파이프에서 시작 오류 (클래스를 찾을 수 없음)를 쓸 수 있습니다. 이와 관련하여 오류에 대해 알아야합니다. javaw호출 된 경우 언제든지 콘솔 리디렉션을 사용하는 것이 좋습니다 .

반대로 사용하면

start java .... 1>log.txt 2>err.txt

윈도우 콘솔로 start명령, 콘솔 출력 리디렉션 않습니다 하지 작업 java도 함께javaw .

설명 이유 : javawOS에서 내부 프로세스 (java.lang.Process 클래스를 사용하여 적절 함)를 열고 알려진 출력 리디렉션을이 프로세스로 전송 한다고 생각합니다 . 명령 행에 경로 재 지정이 없으면 경로 재 지정 javaw되지 않으며 내부 시작 프로세스에 콘솔 출력이 없습니다. java.lang.Process의 동작은 비슷합니다. 가상 머신도이 내부 기능을 사용할 수 있습니다 javaw.

'start'를 사용하는 경우 Windows 콘솔은 Windows가 시작 후 명령을 실행하기 위해 새 프로세스를 작성하지만이 메커니즘은 불행하게도 시작된 서브 프로세스에 대해 지정된 경로 재 지정을 사용하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.