
JDK/OpenJDK
编译OpenJDK,可能遇到的问题及解决办法。这也是目前最全最使用的。
柳鲲鹏
建立了编程学(编程基本功、平台化编程)、六石管理学等几个流派。
每涉及一个领域,都是顶级砖家。在这些领域中,如果遇到问题,最后肯定是搜索到本博客。
展开
-
java: 程序包已存在于另一个模块中: java.xml
改用JDK8改名。原创 2023-12-27 08:47:11 · 824 阅读 · 0 评论 -
又研究了一番JDK在UBUNTU上输入法候选框的问题
我初步研究了一下,还真是。现实是如果使用XIMPreeditPosition初始化,XCreateIC失败(返回NULL)。原来代码中也没这个东西。代码很久了,于是我又重新研究了一下。实际上要得到的并不是屏幕位置,而是与焦点窗口左上角的领衔。几个月之后,好像终于有人review了。原创 2023-08-23 13:08:37 · 189 阅读 · 0 评论 -
OpenJDK8u已发布372,而泰山JDK8已不再更新
我也尽力,争取把这些修改逐步提交到JDK官方源码。而JDK官方事务繁多,整合一个修改都要几个月,我也很无奈。泰山JDK8这么好的东西,就这样完蛋了,心里好难过。里面多项改进,都是JDK的首次。我很早就建议把泰山JDK8搞成国家的科研项目,为软件业贡献。原创 2023-04-23 14:27:58 · 440 阅读 · 0 评论 -
提交的JDK输入法光标跟随,被要求予以详细说明
对你正在做的事情提供一个完整的描述和解释,为什么它是正确的解决方案 你做过什么测试,没有做过什么测试,有什么风险——包括不使用即时消息的应用程序 换句话说,当你(我希望)明白你是如何决定这是正确的解决方案(而不仅仅是复制 有人在bug报告中提出了什么),评审人员希望听到您的意见。所以花点时间把它写清楚。解决JDK输入法光标跟随,专门发过一篇论文,要回答清楚还是很容易的。为什么WINDOWS能够光标跟随,LINUX无法做到。我做了哪些研究工作。原创 2023-04-09 08:50:27 · 146 阅读 · 0 评论 -
LINUX编译OpenJDK17
JDK17是LTS版本。为了将来集成代码,所以先编译试试。下载带ga的版本,表示正式发布。原创 2023-03-22 08:29:24 · 828 阅读 · 1 评论 -
LINUX编译OpenJDK11
JDK11是LTS版本。为了将来集成代码,所以先编译试试。下载带ga的版本,表示正式发布。原创 2023-03-19 07:40:20 · 257 阅读 · 0 评论 -
参与github上JDK开源项目,不能使用rebase。附OpenJDK开发指导
git rebase是参与gitlab上freetype时学会的。原创 2023-03-17 08:57:33 · 121 阅读 · 0 评论 -
热烈祝贺:JDK在Ubuntu上,输入法的候选框终于可以跟随光标移动了!
仔细整理修改了代码,提交到JDK。原创 2023-03-16 14:13:54 · 298 阅读 · 0 评论 -
JDK在Ubuntu上,输入法候选框就是无法跟随光标移动(已解决)
我看过他的录像,用ECLIPSE跑的JAVA程序(可能是MIPS机器上),确实是跟随光标移动。后来泰山OFFICE某个版本出问题,是因为代码改错了。于是反复搜索、测试,都没找到解决办法。他声称解决了,也根据我的要求录像了。我就纳闷了,亲自一试,果然没有解决。原创 2023-03-16 09:19:47 · 477 阅读 · 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 · 147 阅读 · 0 评论 -
LINUX编译OpenJDK21
其实我也没仔细研究,就是看着两个命令,就编译了。难以置信,已经JDK21了。我的系统是UBUNTU 22。原创 2023-03-12 10:39:25 · 761 阅读 · 0 评论 -
JDK运行报错:Caused[0] by NoSuchMethodError: java.nio.IntBuffer.rewind()Ljava
使用JDK17(或者其他高版本)编译,在JDK8运行。而这个函数在二者的签名不一样。把出问题的类,使用JDK8进行单独编译,然后再替换进去。比如吾也想用JDK8编译,结果编译时明确要求,必须使用JDK17。原创 2023-02-27 13:52:39 · 165 阅读 · 0 评论 -
JDK8与JDK17在文件和目录上的差异
在编译jogamp 2.4.0的过程中,直接体会到二者的差异。看了一下JDK8,其实除了JRE目录,其他几个目录并无必要。JDK8有amd64/loongarch64的目录。以前搞个包复制到ext下,已经不灵了。原创 2023-02-25 07:53:18 · 914 阅读 · 3 评论 -
参与Github jdk8u开源,提交一个PR
点击上图中的“New pull request”,然后选择正确分支。原创 2023-02-10 10:13:52 · 164 阅读 · 1 评论 -
泰山OFFICE技术讲座:微软雅黑字体的难看及改进
其实之前就发现问题,昨天看到问题太明显,于是进行了研究。然后就找到了解决办法。可以看出来,缩字也有问题。原创 2023-01-30 10:41:57 · 396 阅读 · 2 评论 -
泰山OFFICE技术讲座:反锯齿绘制研究
字段赋值:textAntialiasHint。从参数FontStrikeDesc得到设置。在这里产生FontStrikeDesc()需要注意的是,两处使用aahint。原创 2023-02-03 14:28:15 · 166 阅读 · 0 评论 -
龙芯JDK8u/loongarch/mips移植源码链接
终于找到了:GitHub - loongson/jdk8u: https://wiki.openjdk.org/display/jdk8u原创 2023-01-06 16:21:03 · 461 阅读 · 1 评论 -
使用VS2017编译OpenJDK8(未成功)
VS2017目录结构有所变化,所以要进行一番修改。原创 2022-12-19 13:23:21 · 575 阅读 · 1 评论 -
JDK中Font的继承关系
Font2DFileFont。原创 2022-12-11 12:42:12 · 178 阅读 · 0 评论 -
全网首发:OpenJDK如何支持字体的kerning及BUG号
前几日,研究字体时发现kerning的特性。经过一番工作,泰山JDK8率先支持! 按照开源协议,BUG及解决办法,都上报到JAVA。具体参考:Bug ID: JDK-8298257 Kerning information from font原创 2022-12-08 08:51:16 · 294 阅读 · 1 评论 -
泰山JDK8获取(宋体,12)中文问号?宽度为0的问题
getCodePointAdvance()处,mapper.charToGlyph(cp)得到?的图元索引(66267)。这么一判断,自然为0了。原创 2022-12-01 08:15:22 · 200 阅读 · 0 评论 -
JAVA如何判断不同语言的大小写
如果是英文,相信各位可以方便的判断出来大小写。原创 2022-11-28 13:36:32 · 160 阅读 · 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 · 428 阅读 · 0 评论 -
JDK本身是支持浮点字体的
某些场合下,需要浮点字体,而Font的构造器中,需要的是整数。是不是就没办法了呢?实际上JDK是支持浮点字体的。最后,可以通过Font.getSize2D()得到浮点字号。对变形器使用浮点操作就可以了。原创 2022-11-23 08:29:36 · 150 阅读 · 0 评论 -
JDK:字体大小是如何生效的
pointSize的命名,疑似不准确。或者是FreeType的磅?调用一个私有浮点构造器。从这里可以看到,JDK是支持浮点字体的。泰山JDK为此专门修改,开放并扩充了构造函数,允许传递浮点。这个函数需要的字号有6位定点小数,所以前面乘64。从传递的参数matrix中获取数组。传递字号,保存在size字段中。字号信息保存在matrix中。也就是构造了一个变形器。原创 2022-11-24 08:21:20 · 353 阅读 · 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 · 376 阅读 · 1 评论 -
UOS+KIRIN截屏出错研究
在这里进行跟踪,发现是compositeGetOverlayWindow导致的。吾仔细想了半天,莫非是窗口产生了没有释放?别说,还真找到了一个释放函数:XCompositeGetOverlayWindow。加上之后,果然不死了。泰OFFICE有个BUG,说在UOS+KIRIN系统上,截屏卡死。这么怪异的问题,当然很难解决。通过对比正确顺序,发现:正确的时候XGetImage()返回结果,错误的时候为NULL。不死的问题解决了,拿到的是黑屏,也就是没有得到数据。使用的是Robot进行屏幕。原创 2022-11-08 08:33:33 · 721 阅读 · 0 评论 -
JDK中字符的宽度计算流程
之后是本地函数getGlyphAdvanceNative()原创 2022-11-07 08:25:18 · 377 阅读 · 0 评论 -
JDK中字体的高度信息ascent/descent/leading是怎么计算的
getFontMetricsNative是本地函数,然后新建StrikeMetrics对象。FTScalerInfo.face中的值:ascender/descender/height。原创 2022-11-19 10:57:14 · 657 阅读 · 0 评论 -
Github参与jdk8u,提交的PR提示:Testing is not configured
【代码】Github参与jdk8u,提交的PR提示:Testing is not configured。原创 2022-10-25 09:06:56 · 365 阅读 · 0 评论 -
关于OCA(Oracle Contributor Agreement)的事情
吾提交代码到jdk8u后,收到一个消息:Oracle Contributor Agreement。原创 2022-10-24 15:39:08 · 345 阅读 · 0 评论 -
Github通过PR提交代码到开源库
代码修改完毕,也提交到自己的库。原创 2022-10-18 09:24:25 · 303 阅读 · 0 评论 -
Github参与OpenJDK8的开发指南
泰山JDK8有很多修改,在某些方面已经是完全不同了。成功参与FreeType修改之后,吾就想,应该参与JDK8的修改。原创 2022-10-18 09:08:03 · 423 阅读 · 0 评论 -
关于TrueType字体的gasp技术说明
在JDK的TrueTyepFont类中,看到以下注释:/**/原创 2022-10-10 09:06:37 · 413 阅读 · 0 评论 -
关于JDK支持TTC字体文件的问题及解决办法,已上报JAVA
因为修改了多个文件,修改的地方也比较多,所以直接复制了整个文件。其中如果有编译不过的,直接删除即可。当然现在有更好的写法了,思路还是一样的。原创 2022-10-10 08:19:22 · 174 阅读 · 2 评论 -
JAVA从TTC文件中获得全部字体名的办法
完成了泰山JDK8完美支持TTC文件之后,吾思维扩展了一下:如果仅仅是想从TTC中获得全部字体名,用不着修改JDK,直接就可以。当然,这样仅仅是获得字体名。要想使用其中的字体,必须修改JDK。原创 2022-10-08 08:41:54 · 756 阅读 · 1 评论 -
世界第一!泰山JDK8完美支持TTC字体文件的效果图
batang.ttc中,共有4个字体:Batang, BatangChe, Gungsuh, GungsuhChe。由图中可以看到,4行文字的英文各不相同。在前面博文中有说明。原创 2022-09-30 13:07:52 · 625 阅读 · 0 评论 -
关于JDK/Java支持TTC字体的思路
开始吾想自己解释字体文件。于是找了FontForge,结果编译没有通过……回头一想,JDK已经支持TTC,吾何不在此基础上处理?构造器中,先把字体名全部读取出来。然后再从字体名中找到索引,重新初始化。这个办法是比较笨的,以后考虑优化一下处理。如前面博文所述,其实JDK是能够认识TTC字体文件的。做起来好像也不难,因为咱有泰山JDK啊。没有这个东西,外部字体名传递进来,也是傻眼。如果字体名有效,则忽略字体索引。前面两个问题解决了,这个就容易了。原创 2022-09-30 09:12:06 · 668 阅读 · 0 评论 -
全网首发:JDK/Java对于TTC字体文件的支持研究
于是了解了一下,原来字体文件(TrueType)有两种:一种是单一的字体(TTF),还有一种是多种字体(TTC)。同事报怨,泰山OFFICE可用字体太少。吾当时就奇怪了:就那么几个字体,让吾给汝变出来?同事说,别的软件字体多啊。那么,是不是改了就对了呢?咱有泰山JDK8,想改还不容易?随口一句:有自己的基础软件,真的好方便啊。使用FontForge可知其中有两个字体,参数中无法指定。从绘制效果来看,完全一样。这个结果是不是对的呢?得到的结果都是:新宋体。这说明JDK确实是能处理TTC。原创 2022-09-29 09:56:44 · 901 阅读 · 0 评论 -
VS2015编译OpenJDK8:找不到libcmt.lib的解决办法
经过搜索、分析、检查,实际上可用的Windows SDK只有v7.1A,其他的都不行。这个错误是吾编译OpenJDK8时遇到的。这是第二次编译,第一次编译没有记录这个错误。难道是系统装的问题?是不是很神奇的通过了?原创 2022-09-10 15:34:27 · 457 阅读 · 0 评论