java –cp_Java –缺少字体–崩溃的应用程序!
java –cp
Eclipse MAT和Heaphero都是分析大型堆转储的流行Java工具。 最近,当我们尝试在Eclipse MAT中分析堆转储文件时遇到了一个有趣的问题。 工具因缺少字体crash而崩溃。 我们认为我们将与您分享发现的结果。
CompositeStrike.getStrikeForSlot()中的ArrayIndexOutOfBoundsException
这是我们的环境:
- Eclipse MAT 1.9
- Java 8
- Linux 3.10.0-862.34.2.el7.x86_64
当我们将堆转储文件上传到Eclipse MAT时,它失败并出现以下错误:
java.lang.ArrayIndexOutOfBoundsException: 0 at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:75) at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93 at sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:359) at sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:350) at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:302) at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:863) at org.eclipse.birt.chart.device.swing.SwingTextMetrics.reuse(SwingTextMetrics.java:123) at org.eclipse.birt.chart.device.TextAdapter.reuse(TextAdapter.java:36) at org.eclipse.birt.chart.device.swing.SwingTextMetrics.<init>(SwingTextMetrics.java:86) at org.eclipse.birt.chart.device.swing.SwingDisplayServer.getTextMetrics(SwingDisplayServer.java:194) at org.eclipse.birt.chart.device.DisplayAdapter.getTextMetrics(DisplayAdapter.java:138) at org.eclipse.birt.chart.computation.BIRTChartComputation.getTextMetrics(BIRTChartComputation.java:36) at org.eclipse.birt.chart.computation.LegendBuilder$LegendData.<init>(LegendBuilder.java:108) at org.eclipse.birt.chart.computation.LegendBuilder.compute(LegendBuilder.java:493) at org.eclipse.birt.chart.model.layout.impl.LegendImpl.getPreferredSize(LegendImpl.java:2059) at org.eclipse.birt.chart.internal.layout.LayoutManager$ChartLayout.<init>(LayoutManager.java:126) at org.eclipse.birt.chart.internal.layout.LayoutManager.doLayout_tmp(LayoutManager.java:1145) : : :
在Google God中快速搜索发现了这个有趣的StackOverflow线程 。 这是此线程的摘要。 Java使用linux的fontconfig功能搜索等宽,SansSerif和serif字体。 Linux fontconfig旨在在系统中定位字体,并根据应用程序指定的要求选择字体。 如果缺少上述任何一种字体,则将导致上述异常。
如果您还遇到这种类型的问题,则有3种潜在的解决方案可以解决此问题:
1.安装缺少的字体
2.升级JDK
3.编辑OS字体配置
让我们详细讨论解决方案。
1.安装缺少的字体
您可以通过发出以下命令来尝试安装缺少的字体:
yum install dejavu-serif-fonts
2.升级JDK
这是一个已知的JDK错误,在OpenJDK,Oracle和IBM JDK错误数据库中进行了跟踪:
- https://bugs.openjdk.java.net/browse/JDK-8188030
- https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8188030
- http://www-01.ibm.com/support/docview.wss?uid=swg1IJ16655
自以下版本以来,此错误已得到修复:
开启JDK 8u192
OracleJDK 8u192
IBM JDK 8 SR5 FP37(8.0.5.37)
您可以升级到最新的JDK版本来解决此问题。
3.编辑OS字体配置
创建一个文件名/etc/fonts/local.conf。 在此文件中,强制将Utopia作为默认字体,由Java使用。
<?xml version= '1.0' ?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd' > <fontconfig> <alias> <family>serif</family> <prefer><family>Utopia</family></prefer> </alias> <alias> <family>sans-serif</family> <prefer><family>Utopia</family></prefer> </alias> <alias> <family>monospace</family> <prefer><family>Utopia</family></prefer> </alias> <alias> <family>dialog</family> <prefer><family>Utopia</family></prefer> </alias> <alias> <family>dialoginput</family> <prefer><family>Utopia</family></prefer> </alias> </fontconfig>
翻译自: https://www.javacodegeeks.com/2020/02/java-missing-font-crashing-app.html
java –cp
java –cp_Java –缺少字体–崩溃的应用程序!相关推荐
- Java –缺少字体–崩溃的应用程序!
Eclipse MAT和Heaphero都是分析大型堆转储的流行Java工具. 最近,当我们尝试在Eclipse MAT中分析堆转储文件时遇到了一个有趣的问题. 工具因缺少字体crash而崩溃. 我们 ...
- macOs开发Java GUI程序提示缺少字体问题解决
the fonts "Times" and "Lucida Bright" are not available 警告详情 出现原因 解决方案 警告详情 Warn ...
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南20:使用安全管理器创建一个安全的沙盒...
本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.20节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...
- java进度条字体颜色_java – Nimbus LF – 改变进度条的背景颜色
我正在使用Netbeans Editor使用Java开发一个小的GUI应用程序. 我在JFrame中添加了一个简单的进度条. 我正在用JDK7开发这个项目 我想将背景颜色从默认橙色更改为个人颜色.我已 ...
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南16:避免授予过多特权...
本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.16节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...
- Java暑期实训任务二——单词检测程序
实训内容:模仿"百词斩"手机App,设计并用Java语言实现一个"百词斩"图形界面程序(根据自己的能力,可以适当地增加或删除部分功能). 最低要求: (1)事先 ...
- java引入外部字体_Java中如何自定义字体文件(引用外部字体)?-字体文件
图源来自网络 有时候我们在程序中,会使用到Java字体,但不是所有的字体系统中都会有,我们就可能会使用外部自定义字体,这样在程序迁移部署中就会少些工作,最近在一个项目中使用到了自定义字体文件,理顺了, ...
- java+SpringBoot+HTML+Mysq基于微信小程序的掌上博物馆游览
详细功能设计:请点击下面链接查看 java+SpringBoot+HTML+Mysq基于微信小程序的掌上博物馆游览_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 摘 要 本 ...
- java Font 自定义字体
记录一下项目中的小问题 1.背景 因为需要用java做报表,发现XChart很好用,但项目在容器中部署后发现,XChart生成的图表中文变成一个个方框,查看资料知,这是由于linux系统中缺少字体导致 ...
最新文章
- 网络流FF,EK,dinicm, isap算法板子//带注释
- 打开金蝶K/3控制台提示“连接中间层加密服务失败,请确认中间层加密服务已启动”...
- activity切换效果
- tableau实战系列(四十七)-Tableau快速生成可视化视图
- hdu-2553 N皇后问题(深搜 + 状态压缩)
- 全端开发——html简介与常用标签
- [工具]OFFICE插件管理工具-帮助更好地管理及使用电脑安装过的OFFICE插件
- ivy maven_将Maven与Ivy集成
- 阿里程序员深夜智救31楼跳楼邻居
- 获取进程或线程的ID以及句柄信息
- 关于RestTemplate的几个问题
- vue cli3 一键 build 区分测试环境和正式环境
- 基本数据类型与字符串之间的转换
- 对研发经理这一岗位的个人理解
- 弹簧优化设计MATLAB,基于Matlab的圆柱螺旋弹簧可靠性优化设计
- java作品_50幅惊艳的分形艺术作品
- 仿小米官网首页 动态交互(HTML+css+jq)1.通栏以及logo部分
- 苹果手机sim卡无效怎么办_苹果手机存储空间不足怎么办
- 欧22转债,永02转债上市价格预测
- Android - 一种相似图片搜索算法的实现
热门文章
- 题解: 区间合并(opj 2-4-7620)
- AT2305-[AGC010D]Decrementing【博弈论】
- Wannafly挑战赛23F-计数【原根,矩阵树定理,拉格朗日插值】
- P3292-[SCOI2016]幸运数字【线性基,LCA,倍增】
- nssl1458-HR 的疑惑【枚举】
- P2513-[HAOI2009]逆序对数列【dp,前缀和】
- 「分块」数列分块入门1 – 9
- 网络流及建模专题(上)
- CERC2017 Gambling Guide,最短路变形,期望dp
- jQuery的三种bind/One/Live/On事件绑定使用方法