חבר ל- Java באמצעות Java Plug-in

עם התבגרות טכנולוגיית ג'אווה, Sun Microsystems (היוצר של Java) משחרר גרסאות חדשות של Java באמצעות ערכת הפיתוח של Java (JDK). Netscape וספקי דפדפנים אחרים תומכים בכל גרסה חדשה על ידי הוספת רכיב זמן הריצה של אותה גרסה - Java Runtime Environment (JRE) - לאיטרציה הבאה של הדפדפנים שלהם. עם זאת, זמן ההשהיה בין הצגת Sun של גרסת Java חדשה לשחרור הדפדפנים התומכים בה תיסכל את מפתחי האינטרא-נט הארגוניים שצריכים להשתמש בתכונות (ותיקוני הבאגים) האחרונים של JRE. והסירוב של מיקרוסופט לתמוך לחלוטין ב- JRE ב- Internet Explorer 4.0 ו- 5.0 הפך את המצב למתסכל עוד יותר עבור מפתחים.

לשמש יש פיתרון לבעיות הללו. פתרון זה עוקף את הספק ומסתמך על טכנולוגיית תוספים להפצת JREs חדשים יותר.

תוספת אדריכלות - בעצם השילוב של ארכיטקטורת תוספות - הוא מפרט עבור ויישום כי חלק דפדפן שנטען באופן דינמי תוספות לפי צורך. גם נטסקייפ וגם מיקרוסופט הוסיפו ארכיטקטורה זו לדפדפנים שלהם. (היישומים בפועל של הארכיטקטורה הם שונים לגמרי: נטסקייפ משתמשת ביישום הפעלה פשוט, בעוד שמיקרוסופט משתמשת ביישום מודל האובייקט ActiveX שלה.)

תוספת היא קוד הפעלה מאוחסן בקובץ ספרייה. כאשר מפנים אותו באמצעות תגי HTML מיוחדים, הדפדפן טוען את הספרייה הזו, באמצעות ארכיטקטורת התוסף שלה, ומתחיל להריץ את קוד הספרייה. (אם נתקלת פעם בדף אינטרנט שמפנה ל- Shockwave של Macromedia או לתיאטרון האינטרנט VXtreme, ראית דוגמאות לתוספים בעבודה.)

הפיתרון של Sun הוא יצירת תוסף ל- Java, המכונה Java Plug-in.

מהו Java Plug-in?

תוסף Java הוא מוצר תוכנה המשמש כגשר בין דפדפן ל- JRE חיצוני. מפתח "אומר" לדפדפן להשתמש ב- JRE חיצוני זה על ידי הצבת תגי HTML מיוחדים בדף אינטרנט. לאחר שהדבר נעשה, דפדפן יכול להריץ יישומוני Java או רכיבי JavaBeans שיש להם גישה לכל התכונות (בגבולות מודל האבטחה של Java) של JRE חיצוני זה.

סאן הוציאה את Java Plug-in 1.1 באפריל 98 '. זמן קצר לאחר מכן, JavaWorld סקר את קהל הקוראים שלה כדי לאמוד את התגובה למוצר זה. מהדורות התחזוקה של Java Plug-in 1.1.1 ו- 1.1.2. (ראה משאבים לפרטים על סקר JavaWorld ומהדורות של תוסף Java.)

במקביל לשחרור ה- JDK 1.2 (המכונה כיום פלטפורמת Java 2), שחררה Sun את Java Plug-in 1.2. עם זאת, בניגוד למהדורות קודמות, מהדורה זו זמינה כרגע רק לפלטפורמת Microsoft Windows (95/98 / NT). Sun פועלת בימים אלה כדי להפוך את Java Plug-in 1.2 לזמין לפלטפורמת Solaris שלה.

מאמר זה בוחן את Java Plug-in 1.2, החל בדיון כיצד להוריד ולהתקין טכנולוגיה זו. זה מבוסס על הניסיון שלי בשימוש ב- Java Plug-in 1.2 בדפדפני Internet Explorer 3.02 ו- Netscape Communicator 4.5, תחת מערכת ההפעלה Windows 95.

התחבר לחשמל!

Java Plug-in 1.2 ארוז כעת עם JRE 1.2. אם ברצונך להתקין תוסף Java מראש, הורד והתקן את JRE 1.2 מאתר האינטרנט של Sun, המקושר אליו במקטע משאבים. לחלופין, תוכל לבחור שהדפדפן שלך מוריד את התוסף Java (עם התערבות מינימלית ממך, תלוי בדפדפן שלך) כאשר אתה "גולש" לדף אינטרנט שמפנה לתוסף זה. כך:

כאשר דפדפן נתקל בדף אינטרנט הדורש שימוש בתוסף Java, הוא בודק אם התוסף Java הותקן על אותה מכונה כמו הדפדפן. אם לא, על הדפדפן להוריד ולהתקין את הקבצים הנדרשים. האופן שבו זה עובד תלוי בדפדפן שלך, לכן נבחן את ההבדלים הבאים.

Netscape Communicator 4.5

אם אתה משתמש ב- Netscape Communicator, דף אינטרנט המכיל את תג ה- HTML המפנה לתוסף Java יפעיל את ההורדה. נחקור בהמשך מאמר זה. לעת עתה, מספיק לדעת שמכיל מידע המסביר לדפדפן איזה תוסף נדרש ואיפה להשיג אותו. איור 1 מציג את דף ההורדה הראשוני המוצג כאשר Communicator נתקל בדף אינטרנט המפנה לפלאגין שאינו מותקן.

אם תלחץ על התמונה בעמוד זה, Communicator מציג תיבת דו-שיח "תוסף לא טעון" כמו זו שמוצגת באיור 2.

תיבת דו-שיח זו מראה לנו שהדפדפן יודע בדיוק לשם מה הוא זקוק (תוסף application/x-java-applet;version=1.2) ולאן להשיג אותו (//java.sun.com/products/plugin/1.2/plugin-install.html).

אז מה קורה כשלוחצים על כפתור "קבל את התוסף"? הדפדפן עובר מהעמוד הנוכחי לדף שצוין על ידי כתובת האינטרנט בתיבת הדו-שיח. מאותו דף אתה עוקב אחר ההוראות להורדה והתקנה של JRE 1.2 עם תוסף Java.

לאחר התקנת ה- JRE עם תוסף Java, במפגש הבא של נטסקייפ עם דף אינטרנט הדורש תוסף ג'אווה, תוסף זה נטען מהכונן הקשיח של המחשב המקומי, היישומון או רכיב JavaBeans יפעל, כ מוצג באיור 3.

Internet Explorer 3.02

אם אתה משתמש ב- Internet Explorer, דף אינטרנט המכיל את התג המפנה ל- Java Plug-in יפעיל את תהליך הורדת התוסף הזה. (כמו גם , נחקור את התג בהמשך מאמר זה). תג זה מכיל מידע המאפשר לדפדפן לדעת איזה סוג תוסף נדרש ואיפה להשיג אותו. כפי שנראה, תהליך קבלת Java Plug-in הוא קצת יותר אוטומטי תחת Explorer מאשר תחת Communicator. איור 4 מציג את העמוד הראשוני המוצג כאשר Explorer נתקל בדף אינטרנט המפנה לפלאגין שאינו מותקן.

(הערה: היהלום הצבעוני בפינה השמאלית העליונה של חלל התוסף מופיע אם המחשב מחובר לאינטרנט. אם המחשב אינו מחובר לאינטרנט, יהלום זה מוחלף בתו X אדום , וברור שהוא סייר לא יעשה דבר בכדי להשיג את הפלאגין).

בהנחה שהמחשב מחובר לאינטרנט, אקספלורר ממשיך להוריד פקד ActiveX קטן האחראי על הורדת פקד ה- Java Plug-in של ActiveX ו- JRE. סייר מציג את אישור Verisign המשויך לפקד ActiveX ראשון זה, כפי שמוצג באיור 5.

בהנחה שבחרת להתקין ולהפעיל את Java Plug-in, על ידי לחיצה על כפתור Yes בתיבת הדו-שיח הקודמת, Explorer יבקש ממך לקבל מידע על אזור באמצעות תיבת הדו-שיח שמוצגת באיור 6.

לאחר קבלת המידע המקומי (ולחצת על כפתור ההתקנה), סייר מציג תיבת דו-שיח להורדה, כפי שמוצג באיור 7.

לאחר השלמת ההורדה, Explorer ינסה להפעיל את JRE עם תוכנית ההתקנה של Java Plug-in. (בפעם הראשונה שהורדתי את Java Plug-in דרך Explorer, קיבלתי הודעת שגיאה CAB - ארון Windows - פגום קבצים, שמנעה מתוכנית ההתקנה להתחיל ולהשלים את ההתקנה. תוכנית ההתקנה התחילה והושלמה בהצלחה ב- ניסיון שני.) ברגע שתוכנית ההתקנה מסתיימת, סייר טוען ומריץ את היישומון (או רכיב JavaBeans), כפי שמוצג באיור 8.

הגדרות הרישום של Windows

תוכנית ההתקנה של JRE עם Java Plug-in מתעדת הגדרות JRE ו- Java Plug-in שונות ברישום Windows - בסיס נתונים מרכזי של התקנות ונתוני תצורה אחרים וחלק מהותי ממערכות ההפעלה השונות של Windows של 32 סיביות. הטבלה הבאה מציגה מספר הגדרות תוסף Java המאוחסנות במסד נתונים זה. כל הגדרה מורכבת ממפתח שמזהה הגדרה וכן מערך ההגדרה.

מַפְתֵחַ ערך
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.2/JavaHome c:\Program Files\JavaSoft\JRE\1.2
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.2/RuntimeLib c:\Program Files\JavaSoft\JRE\1.2\bin\classic\jvm.dll
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Debug Mode 0
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Debug Port 2502
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Java Runtime Default
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Java Runtime Version 1.2
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/JIT Enabled 1
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/JIT Path symcjit
טבלה 1. הגדרות התוסף של Java המאוחסנות ברישום Windows

שתי הגדרות התוסף הראשונות של Java מזוהות על ידי המקשים JavaHomeו- RuntimeLib. הערכים המשויכים למפתחות אלה משמשים את Communicator ו- Explorer כדי לאתר את ספריית הבית של JRE ואת המכונה הווירטואלית של זמן הריצה של JRE, בהתאמה. מידע הספריה הכלול בערכים אלה משקף את ספריית ההתקנה המוגדרת כברירת מחדל שנבחרה במהלך ההתקנה. המקשים הנותרים משמשים את לוח הבקרה של תוסף Java.

פיקוד ובקרה

Java Plug-in לוח הבקרה הוא יישום Swing המאפשרת לשנות את התנהגות Java Plug-in. תוכנית ההתקנה של JRE / Java Plug-in מוסיפה ערך למפעיל התוכניות של Windows שכאשר נבחר, הוא מפעיל את לוח הבקרה של Java Plug-in. ערך זה מורכב מהשורה הבאה (בהנחה שספריית ההתקנה המוגדרת כברירת מחדל):

"c: \ Program Files \ JavaSoft \ JRE \ 1.2 \ bin \ javaw.exe" -classpath .. \ lib \ rt.jar; .. \ lib \ jaws.jar sun.plugin.panel.ControlPanel

לוח הבקרה מורכב מממשק לשוניות עם שלוש לשוניות (Basic, Advanced ו- Proxies) ושני לחצנים (Apply and Reset). הכרטיסייה Basic שולטת בפעולה הבסיסית של Java Plug-in. לדוגמה, תוכל לבחור אם קונסולת Java של Java Plug-in עצמה תוצג או לא. הכרטיסייה מתקדם שולטת באיזה JRE ישתמש עם Java Plug-in יחד עם איתור באגים. כרטיסיית Proxies שולטת בכתובות ומספרי היציאות שבהם Java Plug-in משתמש בעת תקשורת, דרך מחשב ביניים, עם מחשב אחר דרך האינטרנט. כפתור החל שומר את כל השינויים שבוצעו בלוח הבקרה, בעוד שלחצן איפוס משחזר את ערכי ברירת המחדל.

איור 9 מציג את לוח הבקרה עם הלשונית Basic ככרטיסייה הפעילה.

תיבת הסימון אפשר תוסף Java, כאשר מסומנת, מאפשרת ל- Java Plug-in להריץ יישומונים או רכיבי JavaBeans. הגדרת ברירת המחדל מופעלת (התיבה מסומנת).

תיבת הסימון Show Java Console מאפשרת להציג את קונסולת ה- Java החדשה בזמן הפעלת יישומונים או רכיבי JavaBeans. כפי שנראים בהמשך, המסרים מציג קונסולה שהודפסו על ידי System.outועל System.errאובייקטים (היעילים לאיתור באגים). הגדרת ברירת המחדל משמשת להצגת קונסולת Java החדשה (התיבה מסומנת).

תיבת הסימון JARs ב- Cache בזיכרון, כאשר היא מסומנת, גורמת לשמירת יישומון או מחלקות רכיבים שהטענו בעבר ושומש מחדש כאשר טעינת יישומון זו נטענת מחדש, ומאפשרת שימוש בזיכרון יעיל יותר. יש להשאיר אפשרות זו ללא סימון אם ניפוי באגים או רכיב או אם ברצונך לוודא כי הורדת היישומון או מחלקות הרכיב העדכניות ביותר. הגדרת ברירת המחדל היא לשמור מטמון JAR בזיכרון (התיבה מסומנת).

תיבת הרשימה הנפתחת גישה לרשת מאפשרת לך לבחור איזו קצבת גישה לרשת תרצה להעניק ליישומונים ולרכיבים הרצים שלך. אפשרות זו מופעלת אם אתה מפעיל Java Plug-in 1.1.x. עבור Java Plug-in 1.2, עליך להשתמש בארכיטקטורת האבטחה החדשה כדי לאפשר את אותה התנהגות. (למידע נוסף, עיין ב"אבטחה ויישומונים חתומים / ארכיטקטורת אבטחה "בתיעוד JDK 1.2.) כברירת מחדל, יישומונים ורכיבים יכולים להתחבר רק לשרת המקורי שלהם (Network Access = מארח יישומון). כאשר גישה לרשת מופעלת, תוכל להשתמש בקצבאות הבאות, בנוסף לברירת המחדל:

  • אל תאפשר גישה לרשת כלשהי כך שיישומון או רכיב אינם יכולים לבצע שיחות רשת

  • אפשר גישה בלתי מוגבלת לרשת (המהווה סכנת אבטחה ויש להשתמש בה בזהירות רבה) כך שיישומון או רכיב יוכלו להתחבר לכל שרת מארח.

פרמטרי זמן ריצת ג'אווה בשדה הטקסט עוקף את Java Plug-in מחדל פרמטרי הפעלה על ידי הגדרת אפשרויות מותאמות אישית. היית משתמש באותו תחביר עבור שדה טקסט זה שבו אתה משתמש בעת ציון פרמטרים לכלי java.exeשורת הפקודה.

איור 10 מציג את לוח הבקרה עם הכרטיסייה מתקדם כלשונית הפעילה.

סביבת Java Run Time listbox הנפתח מאפשר Plug-in Java לרוץ עם JDK 1.2 או כל JRE שמותקנת במחשב שלך. תוסף Java Java מסופק עם JRE ברירת מחדל (כרגע JRE 1.2). עם זאת, באפשרותך לעקוף את JRE המוגדר כברירת מחדל ולהשתמש בגרסה ישנה או חדשה יותר. לוח הבקרה מזהה באופן אוטומטי את כל הגרסאות של ה- JDK או JRE שהותקנו על המכונה. הוא מציג גרסאות אלה בתוך תיבת הרשימות. הפריט הראשון ברשימה תמיד יהיה ברירת המחדל של Java Plug-in, ואילו הפריט האחרון תמיד יהיה אחר. אם תבחר באפשרות אחר, עליך לציין את הנתיב ל- JRE או ל- JDK 1.2.

תיבת הסימון אפשר מהדר JIT (פלטפורמות Win32 בלבד) מאפשרת את מהדר ה- just-in-time (JIT). אם תפעיל את המהדר, עליך לציין גם את הנתיב למהדר JIT. מהדר ה- JIT חייב להיות ממוקם binבספריה של ה- JRE או JDK שנבחרה לסביבת זמן הריצה.