java + fileDialog

shimritda

New member
java + fileDialog

שלום, יש לי תוכנית ב- JAVA שמשתמשת ב- APPLET, אני מגדירה file dialog, כאשר אני מפעילה את ה- APPLET דרך הפקודה appletviewer זה עובד והכל בסדר, כאשר אני מנסה להפעיל את ה- applet ע"י פתיחת קובץ ה- htm שבו הוא מוגדר, אני מקבלת exception : com.ms.security.SecurityExceptionEx FileDialog creation denied. יש לי IE5.5 ו- JDK1.3.1 מישהו יודע איך אני פותרת את זה??? זה מאוד דחוף לי, תודה.
 

voguemaster

New member
ראשית

אם אני מבין נכון מה-EXCEPTION, כשאת מריצה את ה-APPLET מתוך קובץ ה-HTML את משתמשת ב-JVM של הדפדפן, במקרה זה IE, כלומר JVM של מיקרוסופט. אני בטוח שזה דבר אחד שתרצי לשנות בלי קשר לבעיה שלך (שתיכף אני אפרט אותה). תמיד רצוי לעבוד עם ה-JVM של SUN. עכשיו עניינית. FileDialog זו מחלקה שבעזרתה פותחים תיבת דו-שיח שמאפשרת לבחור קבצים. עד כאן בסדר. הבעיה היא של-APPLET יש מגבלות אבטחה. אני לא יודע עד כמה את מודעת להן אבל בעיקרון יש מגבלות משמעותיות על מה שקוד שמורץ ע"י APPLET מסוגל לעשות. אי אפשר לפתוח קבצים על המערכת שבה ה-APPLET רץ לדוגמא, ולכן ה-JVM צועק עלייך ואומר creation denied. שימי לב שזו SecurityExcpeption, זה אומר הכל. יש עוד הרבה דברים שלא מאופשרים לביצוע ע"י APPLETים באופן כללי. ספר טוב בנושא במידה ואת רוצה להבין את המנגנונים הוא Java Security. בכל אופן, יש שתי שיטות לפיתרון: 1. לכתוב את ה-APPLET בתור אפליקצית ג´אווה לכל דבר. אפליקציה מורשית לעשות הכל, היא פשוט תוכנית. 2. לשנות את ההגדרות של מה מותר ומה אסור ל-APPLET לבצע במחשב המארח (המחשב שמריץ את ה-APPLET). זה ממש לא מומלץ לשחק עם ההגדרות האלה אלא אם כן את יודעת מה את עושה ויש צורך ממשי בזה!! נ.ב. בקשר לשימוש ב-JVM של SUN כדי להריץ דברים, אני ממליץ לך להשתמש ב-HTMLConverter של SUN (עבור גרסא 1.3 ואחיותיה) שלוקח את קובץ ה-HTML ומשנה אותו כך שה-PLUGIN של SUN הוא זה שיריץ את ה-APPLET ולא ה-JVM של מיקרוסופט. ה-PLUGIN כמובן בא עם ה-JRE שהיא גם חלק מה-JDK. יותר מדי ראשי תיבות
בהצלחה
 
ישנה עוד אפשרות....

אם התוכנה צריכה גישה לכתיבה וקריאה של קבצים בשביל לשמור קובץ של המשתמש (כמו מעבד תמלילים למשל), אפשר במקום אפליקציה מלאה להשתמש ב Java Web Start (שעובד עם JNLP) - ככה אפשר לבנות אפליקציה שיש לה גישה להרדיסק של המשתמש אבל לא צריך להתקין אותה - המשתמש לוחץ על קישור בדפדפן שלו, וה Java Web Start מוריד ומפעיל את התוכנה אוטומטית. יותר מזה - אחרי הפעם הראשונה התוכנה נשמרת ב cahce במחשב של המשתמש, ככה שאם אין עדכונים היא מיידית תעלה.
 
למעלה