ജാവയിൽ എഴുതിയ പ്രോഗ്രാമിനെ കമ്പ്യൂട്ടറുമായി ബന്ധപ്പെടുത്തുന്ന ഇടനില സോഫ്റ്റ്‌വെയറാണ് ജാവ വിർച്ച്വൽ മെഷീൻ. ഒരു പ്രോഗ്രാമിനെ പ്രവർത്തിപ്പിക്കുവാൻ പറ്റിയ അന്തരീക്ഷം സൃഷ്ടിക്കുക എന്നതാണ് വിർച്ച്വൽ മെഷീന്റെ കടമ, ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റവുമായി സംവദിച്ച് യന്ത്രഭാഗങ്ങളെ അഥവാ കമ്പ്യൂട്ടർ ഹാർഡ്‌വെയറിനെ, പ്രവർത്തിച്ചു കൊണ്ടിരിക്കുന്ന പ്രോഗ്രാമിന്റെ ആവശ്യാനുസരണം ലഭ്യമാക്കുക, ഒരു കവചം പോലെ നിലനിന്നു കൊണ്ട് പ്രോഗ്രാം ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ അനാവശ്യ ഇടപെടലുകൾ നടത്താതെ നോക്കുക എന്നിങ്ങനെയുള്ള കാര്യങ്ങളാണ് വിർച്ച്വൽ മെഷീൻ ചെയ്യുന്നത്. വിർച്ച്വൽ മെഷീൻ അധിഷ്ഠിതമായ പ്രോഗ്രാമിങ്ങ് ഭാഷകൾ സൃഷ്ടിക്കുന്നതിന്റെ ഉദ്ദേശ്യം ഏതു തരം ഹാർഡ്‌വെയറിലും, ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തിലും പ്രവർത്തിക്കുന്ന പ്രോഗ്രാമുകൾ എഴുതുക എന്നുള്ളതാണ്. ഇത്തരം പ്രോഗ്രാമുകൾ ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തെയോ, ഹാർഡ്‌വെയറിനെയോ കാണുന്നില്ല കാരണം ഇവ വിർച്ച്വൽ മെഷീനുമായി മാത്രമേ ബന്ധപ്പെടുന്നുള്ളൂ. ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റവും ഹാർഡ്‌വെയറും മാറുന്നതിനനുസരിച്ച് പ്രോഗ്രാമുകൾ അപ്പോൾ മാറ്റിയെഴുതേണ്ടി വരില്ല, പകരം എല്ലാ സാഹചര്യങ്ങൾക്കും വേണ്ടിയുള്ള വിർച്ച്വൽ മെഷീനുകൾ ആദ്യം വികസിപ്പിക്കുകയാണ് ചെയ്യുന്നത്. ബൈറ്റ്കോഡ് ഇക്കാരണം കൊണ്ട് വഹനീയം (portable) ആണെന്നു പറയുന്നു. മെമ്മറിയിൽ പ്രോഗ്രാമർ നടത്തുന്ന അനാവശ്യ കൈകടത്തലുകളെ ജാവ വിർച്ച്വൽ മെഷീൻ അനുവദിക്കുന്നില്ല. അതുകൊണ്ട് ജാവയിൽ വൈറസുകൾ എഴുതുക തീരെ എളുപ്പമല്ല. ഓപ്പറേറ്റിങ് സിസ്റ്റത്തെ അമിതമായി സ്വാധീനിക്കാൻ വിർച്ച്വൽ മെഷീൻ അനുവദിക്കാത്തതിനാൽ ജാവ ഏറെ സുരക്ഷിതമായ പ്രോഗ്രാമിങ് ഭാഷയാണ്. പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കാനായി 'ജാവ വിർച്ച്വൽ മെഷീൻ' പ്രോഗ്രാമിനെ പ്രവർത്തനക്ഷമമായി കമ്പൈൽ ചെയ്യുകയും പ്രവർത്തിപ്പിക്കുകയുമാണ് ചെയ്യുന്നത്. ഇത് പ്രോഗ്രാം പ്രവർത്തിക്കുന്നത് മെല്ലെയാക്കുമെങ്കിലും ജാവയിൽ ഈ വൈകൽ തുലോം നിസ്സാരമാണ്. ഒരു പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ വേണ്ട പലതരത്തിലുള്ള പരിശോധനകൾ നടത്തുക, പ്രവർത്തിക്കാനുള്ള സ്ഥലം അനുവദിച്ചുകൊടുക്കുക തുടങ്ങി ഒട്ടനവധി കാര്യങ്ങൾ ചെയ്യണം‍, അതിന്റെ കൂടെ ബൈറ്റ്കോഡ് കമ്പൈൽ ചെയ്യുകയും പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുകയും ചെയ്യേണ്ടതുണ്ട്. ഒരു വലിയ പ്രോഗ്രാമിൽ ഇതെല്ലാം ഒരുമിച്ചു ചെയ്യുക എന്നത് ഏറെ സമയമെടുക്കുന്ന ഒന്നാ‍ണ്. അതുകൊണ്ട് സൺ ജെ.വി.എമ്മിൽ ബൈറ്റ്കോഡിനായി ജസ്റ്റ് ഇൻ റ്റൈം കമ്പൈലർ (Just In Time Compiler - JIT) എന്നൊരു കമ്പൈലർ ചേർത്തിരിക്കുന്നു. ഒരു പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ പ്രോഗ്രാമിന്റെ ഭാഗങ്ങളെ ആവശ്യമുള്ളപ്പോൾ മാത്രം കമ്പൈൽ ചെയ്തു പ്രവർത്തിപ്പിക്കുന്നതിനാണ് ജെ.ഐ.റ്റി. ഉപയോഗിക്കുന്നത്. ഇത് ഉപയോക്താക്കൾക്ക് യാതൊരുവിധ താമസവും അനുഭവപ്പെടാതെ തന്നെ പ്രോഗ്രാം പ്രവർത്തിക്കുന്നതിനു സഹായിക്കുന്നു. ജാവ 2-ലാണ് ജെ.ഐ.റ്റി. രംഗപ്രവേശം ചെയ്തത്. ജാവ റൺറ്റൈം എൻ‌വിയറന്മെന്റ് അഥവാ ജെ.ആർ.ഇ. എന്നും ജാവ സോഫ്റ്റ്‌വേർ എന്നും അറിയപ്പെടുന്ന സോഫ്റ്റ്‍വെയറിലാണ് വിർച്ച്വൽ മെഷീനുള്ളത്. ജെ.ആർ.ഇ. ആർക്കും സണ്ണിന്റെ സൈറ്റിൽ നിന്നും ശേഖരിക്കാനും പുനർവിതരണം ചെയ്യാനും കഴിയും.

ജാവയുടെ അതേ സിന്റാക്സ് ഉപയോഗിക്കുന്ന ജി.സി.ജെ. (GCJ - Gnu Compiler for Java) കമ്പൈലറിന്‌ ജാവ പ്രോഗ്രാമുകളെ ഒബ്ജക്റ്റ് കോഡ് അഥവാ കമ്പ്യൂട്ടറുമായി സംവദിക്കാൻ പ്രാപ്തമായ കോഡായും ബൈറ്റ്കോഡ് ആയും കം‌പൈൽ ചെയ്യാൻ കഴിയും. ജി.സി.ജെ ഉപയോഗിച്ച് ഒബ്ജക്റ്റ്കോഡ് ആണ്‌ സൃഷ്ടിക്കുന്നതെങ്കിൽ വിർച്ച്വൽ മെഷീന്റെ ആവശ്യമില്ല. പക്ഷേ ഇങ്ങനെ ചെയ്യുമ്പോൾ ജാവപ്രോഗ്രാമുകളുടെ വഹനീയത(portability) എന്ന ഗുണം നഷ്ടപ്പെടുന്നു.

ഗുണങ്ങൾ
ജാവയും വെബും
എഴുത്തു രീതി
വിർച്ച്വൽ മെഷീൻ