استثناءات وأخطاء شائعة تتعلق بالخطوط على لينكس
نص أو صور مفقودة (EMF أو WMF) عند تنفيذ الكود على لينكس
تظهر هذه المشكلة في الأنظمة التي توجد فيها قيود في الحالات التالية:
- عندما لا تكون هناك خطوط مثبتة أو عندما لا يمكن الوصول إلى مجلد الخطوط لعملية جافا
- عندما لا يمكن الوصول إلى دليل TEMP.
الحل
تحقق وتأكد من أنه تم منح الوصول إلى دليل TEMP ومجلد الخطوط.
الحل المؤقت
استخدم FontsLoader لتحميل الخطوط المطلوبة دون تثبيتها:
FontsLoader.loadExternalFonts(pathToFontsFolders);
إذا لم يكن بالإمكان الوصول إلى دليل TEMP، استخدم هذا الكود لتحديد دليل آخر كدليل TEMP لجافا:
String newTempFolder = "pathToTmpFolder";
String oldValue = System.getProperty("java.io.tmpdir");
java.io.File file = new java.io.File(newTempFolder);
if (!file.exists())
file.mkdir();
System.setProperty("java.io.tmpdir", newTempFolder);
try {
FontsLoader.loadExternalFonts(pathToFontsFolders);
Presentation pres = ...
// ....
} finally {
System.setProperty("java.io.tmpdir", oldValue);
}
الاستثناء: InvalidOperationException: لا يمكن العثور على أي خطوط مثبتة على النظام
يحدث هذا الاستثناء عندما
- لا يمكن لعملية جافا الوصول إلى مجلد الخطوط
- لم يتم تثبيت أي خطوط.
الحل
-
تحقق وتأكد من أنه تم منح الوصول إلى مجلد الخطوط لعملية جافا.
-
ثبت بعض الخطوط أو استخدم FontsLoader.
-
ثبت الخطوط.
-
Ubuntu:
sudo apt-get update sudo apt-get install -y fonts-dejavu-core fc-cache -fv -
CentOS:
sudo yum makecache sudo yum -y install dejavu-sans-fonts fc-cache -fv -
باستخدام FontsLoader:
FontsLoader.loadExternalFonts(pathToFontsFolders);
-
الاستثناء: NoClassDefFoundError: تعذر تهيئة الفئة com.aspose.slides.internal.ey.this
يحدث هذا الاستثناء على نظام لينكس يفتقر إلى fontconfig والخطوط.
الحل
ثبت fontconfig:
-
Ubuntu:
sudo apt-get update sudo apt-get -y install fontconfig -
CentOS:
sudo yum makecache sudo yum -y install fontconfig
بالإضافة إلى ذلك، بعض إصدارات open-jdk (على سبيل المثال، alpine JDK) تحتاج أيضًا إلى خطوط مثبتة.
-
Ubuntu:
sudo apt-get install -y fonts-dejavu-core fc-cache -fv -
CentOS:
sudo yum -y install dejavu-sans-fonts fc-cache -fv
الاستثناء: UnsatisfiedLinkError: libfreetype.so.6: لا يمكن فتح ملف الكائن المشترك: لا وجود للملف أو الدليل
يظهر هذا الاستثناء على نظام لينكس يفتقر إلى مكتبة libfreetype.
الحل
ثبت libfreetype و fontconfig:
-
Ubuntu:
sudo apt-get update sudo apt-get install libfreetype6 sudo apt-get -y install fontconfig -
CentOS:
sudo yum makecache sudo yum install libfreetype6 sudo yum -y install fontconfig