JVM
כאשר אתה מקמפל C++ על גבי מכונת WINDOWS, אתה יוצר EXECUTABLE שנועד לסביבת WINDOWS. כאשר אתה לוקח את אותו קוד מקור ומקמפל אותו על מכונת UNIX כלשהי, אתה יוצר EXECUTABLE שנועד לסביבת UNIX וכן הלאה. הקומפיילר מתרגם את קוד המקור לסביבת מערכת ההפעלה עליה מתבצע הקימפול. EXECUABLE שקומפל לWINDOWS לא יוכל לרוץ על UNIX או על כל מערכת הפעלה אחרת מלבד WINDOWS. כאשר אתה מקמפל JAVA, לפחות באופן תיאורתי, אתה יוצר EXECUTABLE שנועד לרוץ על גבי JVM ולא על גבי פלטפורמה ספציפית. ה JVM יכול להיות מותקן על WINDOWS, UNIX, או כל מערכת הפעלה אחרת. עבור ה EXECUTABLE זה לא משנה כי הוא "רואה" רק את ה JVM.
כאשר אתה מקמפל C++ על גבי מכונת WINDOWS, אתה יוצר EXECUTABLE שנועד לסביבת WINDOWS. כאשר אתה לוקח את אותו קוד מקור ומקמפל אותו על מכונת UNIX כלשהי, אתה יוצר EXECUTABLE שנועד לסביבת UNIX וכן הלאה. הקומפיילר מתרגם את קוד המקור לסביבת מערכת ההפעלה עליה מתבצע הקימפול. EXECUABLE שקומפל לWINDOWS לא יוכל לרוץ על UNIX או על כל מערכת הפעלה אחרת מלבד WINDOWS. כאשר אתה מקמפל JAVA, לפחות באופן תיאורתי, אתה יוצר EXECUTABLE שנועד לרוץ על גבי JVM ולא על גבי פלטפורמה ספציפית. ה JVM יכול להיות מותקן על WINDOWS, UNIX, או כל מערכת הפעלה אחרת. עבור ה EXECUTABLE זה לא משנה כי הוא "רואה" רק את ה JVM.