대딩때 훑어만 보다가 요즘 다시 공부하고 있는데
Java로 만든건 JVM 이라는 가상머신 통해서 구동이 된다고함
그래서 윈도우건 맥이건 JVM 깔려있으면 하드웨어 상관없이 구동이 됨
근데 안드로이드 APK도 자바로 만들었는데
왜 윈도우에서 구동이 안됨?
내가 유일하게 아는건 안드로이드가 JVM이 아니라 ART라는 별도 가상머신을 쓴다는건 아는데..
가상머신이 JVM이 아니라 그런거임?
대딩때 훑어만 보다가 요즘 다시 공부하고 있는데
Java로 만든건 JVM 이라는 가상머신 통해서 구동이 된다고함
그래서 윈도우건 맥이건 JVM 깔려있으면 하드웨어 상관없이 구동이 됨
근데 안드로이드 APK도 자바로 만들었는데
왜 윈도우에서 구동이 안됨?
내가 유일하게 아는건 안드로이드가 JVM이 아니라 ART라는 별도 가상머신을 쓴다는건 아는데..
가상머신이 JVM이 아니라 그런거임?
안드로이드는 안드로이드 운영체제에 종속된 api를 사용해서 그런게아닐까? 추측임
쉽게 설명하면 자바를 확장했기 때문이지. 자바의 기본 기능들만 쓰면 PC든 모바일이든 가리지 않도 돌아가겠지만, PC에는 없고 모바일에만 있는 기능들, 예를 들어 GPS나 가속도 센서 등을 쓰기 위해서는 자바를 확장할 수밖에 없는데 이러면 호환이 안 되기 시작하지
자바의 크로스 플랫폼 약속이 별로 의미가 없는 게 이 때문이지. 모든 플랫폼에서 동작하려면 최소한의 공통 기능만 써야 하는데 이러면 유용한 프로그램을 만들 수가 없다. 결국 언어의 확장이 불가피하지
오.. 형님 감사합니다! 좋은 저녁 되십쇼!