2014-12-08 2 views
0

초보자이며 의심의 여지가 있습니다. 나는 많은 책에서 Java가 플랫폼 독립적 인 것을 읽었지만 이지만 JVM은 플랫폼에 따라 다르다고 동의한다. 자, 문제는 다음과 같습니다 : 모든 OS 에 JVM이 있습니까? 모든 OS JVM이 이미 설치되어 있거나 설치되어 있지 않다는 것을 의미합니다. 또는 JDK를 설치하면 JDK JVM과 함께 설치됩니다. JVM이 이미 설치되어 있고 이 OS와 함께 제공되면 JDK를 설치하지 않고 JVM의 존재 여부를 어떻게 확인할 수 있습니까?Java는 플랫폼의 이상성에 어떤 영향을 줍니까?

누구나 할 수 있는지 설명해주십시오. 미리 감사드립니다.

+0

JVM이 실제로 설치되는지 여부는 OS에 따라 다릅니다. 기본 Windows에는 하나가 없지만 많은 OEM 설치가 추가합니다. 리눅스 배포판, 그것은 다릅니다. 예를 들어 Ubuntu에는 JVM이있는 OpenJDK가 있으며 Sun의 JVM을 설치해야합니다. JVM이 설치되어 있는지 확인하려면 쉘/콘솔을 열고'java -version'을 입력하십시오. – AntonH

+0

중요한 점은 Java는 "한 번만 실행"입니다. JVM을 "인증"하려면 테스트 스위트를 실행하고 다른 Java 시스템에서와 똑같은 결과를 만들어야합니다. 즉, Java로 작성한 코드는 "플랫폼 독립적"입니다. 의도적으로 플랫폼 종속성을 포함하지 않는 한 모든 플랫폼에서 코드가 동일하게 실행됩니다. 그리고 한 플랫폼에서 다른 플랫폼으로 이동할 때 다시 컴파일 할 필요가 없습니다. –

+2

많은 언어는 플랫폼에 독립적입니다. 선은 단지 그것을 가장 잘 팔았습니다. –

답변

3

Java 언어는 보통 byte-code이라는 중간 포맷으로 컴파일됩니다 (보통 단일 명령어 세트의 기계어 코드로 컴파일되는 이전 언어와 달리). 바이트 코드는 JRE (Java Runtime Environment)에 의해 해석됩니다. 일부 운영 체제 (일부는 아니지만)는 JRE와 함께 제공됩니다. 대부분의 운영 체제에는 JRE가 사용 가능할 수 있습니다 (단, 모두는 아님).

+0

"많은"이 맞는지 나는 모른다. 나는 윈도우, OS X 또는 리눅스가 그것을 포함한다고 생각하지 않는다. – Scooter

+0

@ 스쿠터 이전 버전의 Windows에는 Java가 탑재되었습니다. 오에스 텐도 그렇게 생각했다. 그리고 그것은 리눅스의 배포판에 달려 있습니다. –

+1

적어도 GNU/Linux에 관해서는 GCC가 Java 소스 코드를 원시 시스템 코드로 컴파일 할 수 있다는 점을 상기해볼 가치가 있습니다. – 5gon12eder

관련 문제