Ha egy egyszer megírt assembly kód nem tud futni más-más processzorokon a különböző utasítás készletek miatt akkor a Javánál ez hogy lehetséges?
Tudom a java kód egy virtuális gépben a Java Virtual Machineben fordul át bájtkódra amit az is futtat le, az assemblyt meg az assembler fordítja gépi kódra amit a fizikai processzor futtat le. De a JVMnek valahogy kommunikálnia kell a fizikai processzorral. Arra lennék kíváncsi ezt hogy teszi meg? Gépi kódon ezt nem teheti meg mert az is különbözik az utasításkészletek miatt nem? Vagy ha csak egy gépi kód van miért nem tud egy assembler egy kódot az összes processzorra fordítani?
Valamit rosszul tudok vagy gondolok?
A java kód egy javac nevű compiler fordít át bájtkódra. Ez is java-ban van írva, így valóban a java virtuális gépen történik a dolog de csak fejlesztési fázisban a fejlesztők gépén/szerverén.
A felhasználók csak JRE-vel (Java Runtime Environment) rendelkeznek. Ez az interpreter, ami meg van írva több platformra is. Megeszi a bájtkódot és elvégzi a benne lévő utasításokat.
Fejlesztéshez Java Development Kit kell. Ez a JRE mellett tartalmazza a compilert és még néhány tucatnyi egyéb fejlesztői eszközt.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!