הבדל מפתח – נתיב לעומת classpath
Java היא שפת תכנות ברמה גבוהה לשימוש כללי. זוהי שפת תכנות פופולרית המשמשת לפיתוח מגוון יישומים כגון נייד, שולחן עבודה ואינטרנט. ישנן גם סביבות פיתוח משולבות (IDE) המיועדות לארגון, הפעלה וניפוי באגים ביישומי Java. מבלי להמיר את תוכנית ה-Java השלמה לפורמט מובן למכונה, תכנית ה-Java מומרת תחילה לקוד בתים. לאחר מכן קוד הבתים מתורגם לקוד מכונה. על מנת להדר ולהריץ תוכנית Java, על המתכנת להגדיר את הנתיב ואת ה-classpath. אפילו שני המונחים האלה נראים דומים, יש הבדל.מאמר זה דן בהבדל בין נתיב ל-classpath. ההבדל העיקרי בין נתיב ל-classpath הוא ש-path הוא משתנה סביבה המשמש להפניה למיקום קבצי ההפעלה של Java בעוד classpath הוא משתנה סביבה המשמש להפניה למיקום של קבצי המחלקה.
מהו נתיב?
זהו משתנה שעוזר לקמפל ולהפעיל תוכניות Java. זה משתנה סביבתי. הוא משמש למציאת כלים כגון Java, מהדר Java, תיעוד Java (java doc), מחולל קבצי כותרות של Java (javah), Java disassembler (javap) ו-Java debugger (jdb). כדי להדר ולהפעיל את תוכנית Java יש צורך במהדר Java וכלי Java. אלו הם קבצי הפעלה.
איור 01: נתיב ו-classpath
בעת קומפילציה של תוכנית Java, מערכת ההפעלה לוקחת את משתנה הסביבה הזה כהפניה לקריאה למהדר Java. לכן, לפי הערך במשתנה הסביבה, מערכת ההפעלה תפעיל את מהדר Java ואת הכלים. לכן, המתכנת צריך להגדיר את משתנה הנתיב. לאחר התקנת Java, יש תיקייה בשם Java בקבצי התוכנית של כונן C. בתוך התיקיה הזו, יש תיקיה בשם jdk. בתוך jdk, יש תיקיה בשם bin. בתיקיית bin, יש java, java compiler(javac), תיעוד java(javadoc) ועוד המון כלים. לכן, מערכת ההפעלה משתמשת במשתנה סביבת הנתיב כהתייחסות כדי למצוא את הכלים האלה.
מהו classpath?
Java היא שפת תכנות מספקת הרבה ספריות מובנות וספריות צד שלישי עבור היישום. המתכנת יכול להשתמש בספריות אלו בהתאם לאפליקציה המתפתחת. על מנת להשתמש בספריות אלו באפליקציה, על המתכנת להגדיר את ה-classpath. JVM מתייחס ל-Java Virtual Machine, שהיא מכונה מופשטת להפעלת תוכניות Java. JVM או מהדר Java משתמשים בנתיב המחלקה הזה כהפניה לחיפוש בקבצי המחלקה הדרושים ליישום. ה-classpath אומר ל-JVM או למהדר היכן לחפש במערכת הקבצים כדי למצוא את הקבצים שהוגדרו במחלקות.
מהו הדמיון בין נתיב ל-classpath?
שני הנתיב וגם ה-classpath הם משתני סביבה כדי להדר ולהריץ תוכניות Java כראוי
מה ההבדל בין נתיב ל-classpath?
נתיב לעומת classpath |
|
הנתיב הוא משתנה סביבה המשמש להפניה למיקום קבצי ההפעלה של Java. | ה-classpath הוא משתנה סביבה המשמש להפניה למיקום של קבצי המחלקה. |
בשימוש על ידי | |
משתנה הנתיב משמש ברמת מערכת ההפעלה. | משתנה נתיב המחלקה משמש את המהדר JVM ו-Java. |
ערך משתנה | |
ערך הנתיב הוא %Java_Home%/bin. | ערך ה-classpath הוא %Java_Home%/lib. |
סיכום – נתיב לעומת classpath
בעת התקנת Java למערכת, מותקנים קבצים רלוונטיים במערכת. הנתיב וה-classpath הם שני משתנים המשמשים בתכנות Java כדי להפנות את המיקומים של קבצים שונים. אפילו הם נראים דומים, יש להם הבדל. מאמר זה דן בהבדל בין נתיב ל-classpath. ההבדל בין נתיב ל-classpath הוא שהנתיב הוא משתנה סביבה המשמש להפניה למיקום קבצי ההפעלה של Java בעוד classpath הוא משתנה סביבה המשמש להפניה למיקום של קבצי הכיתה.אי הגדרת הנתיב וה-classpath כראוי ישפיע על הקומפילציה והפעלה נכונה של תוכניות Java.