
JDK/OpenJDK
编译OpenJDK,可能遇到的问题及解决办法。这也是目前最全最使用的。
柳鲲鹏
建立了编程学(编程基本功、平台化编程)、六石管理学等几个流派。
每涉及一个领域,都是顶级砖家。在这些领域中,如果遇到问题,最后肯定是搜索到本博客。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA使用AffineTransform缩放字体
x方向缩小0.5,Y方向不变。原创 2022-11-30 11:00:51 · 389 阅读 · 0 评论 -
泰山OFFICE技术讲座:JDK字体支持编码的研究2
调试中得到的是utf-8,JDK默认编码?从这里可以看到,字体文件专门有标志标明支持什么语言。至此,相关信息处理完成。原创 2022-11-14 15:12:30 · 270 阅读 · 1 评论 -
全网首发:什么都对,报错java.lang.NoClassDefFoundError: com/sun/jna/Library
把jna.jar/jna-platform.jar复制到jre/lib/ext下。从jna 5.10开始,有了本地库。原创 2022-11-16 10:37:04 · 1261 阅读 · 0 评论 -
泰山OFFICE技术讲座:JDK字体支持编码的研究1
东亚字体:日文ms932,中文gbk/ms950,韩文ms949/ms1361。如果是18030会改名为gbk,简化判断。只研究TrueType字体格式。代码文件是sun.font.TrueTypeFont。JDK的字体支持编码。为此专门研究了一下。原创 2022-11-14 14:36:43 · 652 阅读 · 0 评论 -
java: 程序包已存在于另一个模块中: java.xml
改用JDK8改名。原创 2023-12-27 08:47:11 · 889 阅读 · 0 评论 -
又研究了一番JDK在UBUNTU上输入法候选框的问题
我初步研究了一下,还真是。现实是如果使用XIMPreeditPosition初始化,XCreateIC失败(返回NULL)。原来代码中也没这个东西。代码很久了,于是我又重新研究了一下。实际上要得到的并不是屏幕位置,而是与焦点窗口左上角的领衔。几个月之后,好像终于有人review了。原创 2023-08-23 13:08:37 · 208 阅读 · 0 评论 -
OpenJDK8u已发布372,而泰山JDK8已不再更新
我也尽力,争取把这些修改逐步提交到JDK官方源码。而JDK官方事务繁多,整合一个修改都要几个月,我也很无奈。泰山JDK8这么好的东西,就这样完蛋了,心里好难过。里面多项改进,都是JDK的首次。我很早就建议把泰山JDK8搞成国家的科研项目,为软件业贡献。原创 2023-04-23 14:27:58 · 482 阅读 · 0 评论 -
提交的JDK输入法光标跟随,被要求予以详细说明
对你正在做的事情提供一个完整的描述和解释,为什么它是正确的解决方案 你做过什么测试,没有做过什么测试,有什么风险——包括不使用即时消息的应用程序 换句话说,当你(我希望)明白你是如何决定这是正确的解决方案(而不仅仅是复制 有人在bug报告中提出了什么),评审人员希望听到您的意见。所以花点时间把它写清楚。解决JDK输入法光标跟随,专门发过一篇论文,要回答清楚还是很容易的。为什么WINDOWS能够光标跟随,LINUX无法做到。我做了哪些研究工作。原创 2023-04-09 08:50:27 · 161 阅读 · 0 评论 -
LINUX编译OpenJDK17
JDK17是LTS版本。为了将来集成代码,所以先编译试试。下载带ga的版本,表示正式发布。原创 2023-03-22 08:29:24 · 908 阅读 · 1 评论 -
LINUX编译OpenJDK11
JDK11是LTS版本。为了将来集成代码,所以先编译试试。下载带ga的版本,表示正式发布。原创 2023-03-19 07:40:20 · 286 阅读 · 0 评论 -
参与github上JDK开源项目,不能使用rebase。附OpenJDK开发指导
git rebase是参与gitlab上freetype时学会的。原创 2023-03-17 08:57:33 · 139 阅读 · 0 评论 -
热烈祝贺:JDK在Ubuntu上,输入法的候选框终于可以跟随光标移动了!
仔细整理修改了代码,提交到JDK。原创 2023-03-16 14:13:54 · 327 阅读 · 0 评论 -
JDK在Ubuntu上,输入法候选框就是无法跟随光标移动(已解决)
我看过他的录像,用ECLIPSE跑的JAVA程序(可能是MIPS机器上),确实是跟随光标移动。后来泰山OFFICE某个版本出问题,是因为代码改错了。于是反复搜索、测试,都没找到解决办法。他声称解决了,也根据我的要求录像了。我就纳闷了,亲自一试,果然没有解决。原创 2023-03-16 09:19:47 · 515 阅读 · 0 评论 -
要在JDK8U上解决BUG,必须先在最新JDK上解决
最近为了解决这个BUG:New changes for 8u should go to GitHub - openjdk/jdk8u-dev: https://wiki.openjdk.org/display/jdk8u. This tree is for critical regression fixes for the next release only.@quantum6 From the bug description it sounds like this is an issue in lat原创 2023-03-17 08:28:17 · 164 阅读 · 0 评论 -
LINUX编译OpenJDK21
其实我也没仔细研究,就是看着两个命令,就编译了。难以置信,已经JDK21了。我的系统是UBUNTU 22。原创 2023-03-12 10:39:25 · 822 阅读 · 0 评论 -
JDK运行报错:Caused[0] by NoSuchMethodError: java.nio.IntBuffer.rewind()Ljava
使用JDK17(或者其他高版本)编译,在JDK8运行。而这个函数在二者的签名不一样。把出问题的类,使用JDK8进行单独编译,然后再替换进去。比如吾也想用JDK8编译,结果编译时明确要求,必须使用JDK17。原创 2023-02-27 13:52:39 · 185 阅读 · 0 评论 -
JDK8与JDK17在文件和目录上的差异
在编译jogamp 2.4.0的过程中,直接体会到二者的差异。看了一下JDK8,其实除了JRE目录,其他几个目录并无必要。JDK8有amd64/loongarch64的目录。以前搞个包复制到ext下,已经不灵了。原创 2023-02-25 07:53:18 · 971 阅读 · 3 评论 -
参与Github jdk8u开源,提交一个PR
点击上图中的“New pull request”,然后选择正确分支。原创 2023-02-10 10:13:52 · 187 阅读 · 1 评论 -
泰山OFFICE技术讲座:微软雅黑字体的难看及改进
其实之前就发现问题,昨天看到问题太明显,于是进行了研究。然后就找到了解决办法。可以看出来,缩字也有问题。原创 2023-01-30 10:41:57 · 423 阅读 · 2 评论 -
泰山OFFICE技术讲座:反锯齿绘制研究
字段赋值:textAntialiasHint。从参数FontStrikeDesc得到设置。在这里产生FontStrikeDesc()需要注意的是,两处使用aahint。原创 2023-02-03 14:28:15 · 184 阅读 · 0 评论 -
龙芯JDK8u/loongarch/mips移植源码链接
终于找到了:GitHub - loongson/jdk8u: https://wiki.openjdk.org/display/jdk8u原创 2023-01-06 16:21:03 · 498 阅读 · 1 评论 -
使用VS2017编译OpenJDK8(未成功)
VS2017目录结构有所变化,所以要进行一番修改。原创 2022-12-19 13:23:21 · 628 阅读 · 1 评论 -
JDK中Font的继承关系
Font2DFileFont。原创 2022-12-11 12:42:12 · 197 阅读 · 0 评论 -
全网首发:OpenJDK如何支持字体的kerning及BUG号
前几日,研究字体时发现kerning的特性。经过一番工作,泰山JDK8率先支持! 按照开源协议,BUG及解决办法,都上报到JAVA。具体参考:Bug ID: JDK-8298257 Kerning information from font原创 2022-12-08 08:51:16 · 317 阅读 · 1 评论 -
泰山JDK8获取(宋体,12)中文问号?宽度为0的问题
getCodePointAdvance()处,mapper.charToGlyph(cp)得到?的图元索引(66267)。这么一判断,自然为0了。原创 2022-12-01 08:15:22 · 217 阅读 · 0 评论 -
JAVA如何判断不同语言的大小写
如果是英文,相信各位可以方便的判断出来大小写。原创 2022-11-28 13:36:32 · 174 阅读 · 0 评论 -
JDK:Font.canDisplay()是如何生效的
之前记得某些情况下,Font.canDisplay()有问题。今天试了一下Times New Roman字体对泰的结果,得到了false,说明正确工作了。如果index合法(落在startCount和endCount之间),就可以找到索引。missingGlyph初始化为-1,TrueTypeGlyphMapper()中初始化为0。如果返回的glyph与missingGlyph不同,就可以显示。这个函数中,charToGlyph()得到字符图像索引,如果是-1就是无法显示。原创 2022-11-25 11:01:40 · 450 阅读 · 0 评论 -
JDK本身是支持浮点字体的
某些场合下,需要浮点字体,而Font的构造器中,需要的是整数。是不是就没办法了呢?实际上JDK是支持浮点字体的。最后,可以通过Font.getSize2D()得到浮点字号。对变形器使用浮点操作就可以了。原创 2022-11-23 08:29:36 · 163 阅读 · 0 评论 -
JDK:字体大小是如何生效的
pointSize的命名,疑似不准确。或者是FreeType的磅?调用一个私有浮点构造器。从这里可以看到,JDK是支持浮点字体的。泰山JDK为此专门修改,开放并扩充了构造函数,允许传递浮点。这个函数需要的字号有6位定点小数,所以前面乘64。从传递的参数matrix中获取数组。传递字号,保存在size字段中。字号信息保存在matrix中。也就是构造了一个变形器。原创 2022-11-24 08:21:20 · 377 阅读 · 1 评论 -
J3D在UOS+KIRIN崩溃1:直接原因分析
正确:jogamp.opengl.x11.glx.X11OnscreenGLXDrawable(两层继承:X11GLXDrawable, GLDrawableImpl) implements GLDrawable。错误:jogamp.opengl.egl.EGLDrawable(继承GLDrawableImpl)到了这里,直接原因清楚了。上述类,仅在getBestConfiguration()新建。在setVisible()的时候,嗝屁了。doWork()调用。原创 2022-11-10 14:33:42 · 398 阅读 · 1 评论 -
UOS+KIRIN截屏出错研究
在这里进行跟踪,发现是compositeGetOverlayWindow导致的。吾仔细想了半天,莫非是窗口产生了没有释放?别说,还真找到了一个释放函数:XCompositeGetOverlayWindow。加上之后,果然不死了。泰OFFICE有个BUG,说在UOS+KIRIN系统上,截屏卡死。这么怪异的问题,当然很难解决。通过对比正确顺序,发现:正确的时候XGetImage()返回结果,错误的时候为NULL。不死的问题解决了,拿到的是黑屏,也就是没有得到数据。使用的是Robot进行屏幕。原创 2022-11-08 08:33:33 · 834 阅读 · 0 评论 -
JDK中字符的宽度计算流程
之后是本地函数getGlyphAdvanceNative()原创 2022-11-07 08:25:18 · 401 阅读 · 0 评论 -
JDK中字体的高度信息ascent/descent/leading是怎么计算的
getFontMetricsNative是本地函数,然后新建StrikeMetrics对象。FTScalerInfo.face中的值:ascender/descender/height。原创 2022-11-19 10:57:14 · 682 阅读 · 0 评论 -
Github参与jdk8u,提交的PR提示:Testing is not configured
【代码】Github参与jdk8u,提交的PR提示:Testing is not configured。原创 2022-10-25 09:06:56 · 388 阅读 · 0 评论 -
关于OCA(Oracle Contributor Agreement)的事情
吾提交代码到jdk8u后,收到一个消息:Oracle Contributor Agreement。原创 2022-10-24 15:39:08 · 375 阅读 · 0 评论 -
Github通过PR提交代码到开源库
代码修改完毕,也提交到自己的库。原创 2022-10-18 09:24:25 · 331 阅读 · 0 评论 -
Github参与OpenJDK8的开发指南
泰山JDK8有很多修改,在某些方面已经是完全不同了。成功参与FreeType修改之后,吾就想,应该参与JDK8的修改。原创 2022-10-18 09:08:03 · 440 阅读 · 0 评论 -
关于TrueType字体的gasp技术说明
在JDK的TrueTyepFont类中,看到以下注释:/**/原创 2022-10-10 09:06:37 · 432 阅读 · 0 评论 -
关于JDK支持TTC字体文件的问题及解决办法,已上报JAVA
因为修改了多个文件,修改的地方也比较多,所以直接复制了整个文件。其中如果有编译不过的,直接删除即可。当然现在有更好的写法了,思路还是一样的。原创 2022-10-10 08:19:22 · 190 阅读 · 2 评论 -
JAVA从TTC文件中获得全部字体名的办法
完成了泰山JDK8完美支持TTC文件之后,吾思维扩展了一下:如果仅仅是想从TTC中获得全部字体名,用不着修改JDK,直接就可以。当然,这样仅仅是获得字体名。要想使用其中的字体,必须修改JDK。原创 2022-10-08 08:41:54 · 841 阅读 · 1 评论