שליטה בסביבת זמן הריצה של ג'אווה

יש ארבע דרכים לשלוט בסביבת הריצה של ג'אווה:

  • משתנה הסביבה _JAVA_OPTIONS.
  • שורת הפקודה בהרצת המכונה הווירטואלית של ג'אווה.
  • קוד המקור של ג'אווה. במקרה זה עליכם לוודא שאתם מגדירים את האפשרות לפני שהיא נקלטת על ידי תת־המערכת שאליה היא מיועדת.
  • ב־Java Web Start אפשר גם להשתמש בקובץ ה־JNLP כדי לשלוט בסביבה שמועברת ל־JVM המריץ.

דוגמאות לכך יכולות להיות:

  • export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'
  • java -Dawt.useSystemAAFontSettings=lcd [arguments...]
  • System.setProperty("awt.useSystemAAFontSettings","lcd");
  • property name="awt.useSystemAAFontSettings" value="lcd" (תחת האלמנט resources)

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

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

הערכים של המפתח awt.useSystemAAFontSettings הם כדלקמן:

  • false מקביל לביטול החלקת גופנים בשולחן העבודה.
  • on מקביל ל־Best shapes/Best contrast של גנום (אין הגדרה מקבילה בחלונות).
  • gasp מקביל להחלקת הגופנים Standard של חלונות (אין הגדרה מקבילה בשולחן העבודה של גנום).
  • lcd מקביל ל־subpixel smoothing של גנום ול־ClearType של חלונות.

מהי האפשרות הטובה ביותר? ובכן — אני באמת לא יודע. במחשב הנייד שלי lcd נראה הכי טוב. ספרו לי על הניסיון שלכם...