39 Star 111 Fork 23

方舟编译器孵化器/maple_engine

 / 详情

重新编译OpenJDK的必要性?

已完成
创建于  
2020-07-23 22:02

请问,从文档中,我没看到有必要重新编译OpenJDK来获取Java core jars。
可以这样:

  1. 下载Object.java(或者直接从安装的JDK的src目录下复制过去),然后修改;
  2. 用javac编译Object.java获得Object.class;
  3. 因为已经安装了openjdk8,所以从jre/lib目录下面拷贝需要的jar过来就好了;
  4. 解压rt.jar,替换java/lang/Object.class为我们重新编译的Object.class,再重新打包为jar包;
  5. 构建libcore.so,执行后续操作。

这样对于内存的需要就没有这么大了,不会把人吓到 :laughing:

@Maple_YZhang

评论 (6)

展开全部操作日志

若能成功,构建OpenJDK这一步会简单多了。从几个.jar文件到libcore.so(构建核心库)这一步占用内存最多,还是需要那么大的内存。

@Maple_YZhang 这样是可以成功的,因为我们需要的并不是OpenJDK,而是其中core java的jar包。每一个. class文件是互相独立的,修改一个之后并不需要整个重新编译(因为java是动态加载、链接)。
编译OpenJDK的坑比较多,所以我建议在文档中增加这种容易成功的方式。

@Maple_YZhang 这样是可以成功的,因为我们需要的并不是OpenJDK,而是其中core java的jar包。每一个. class文件是互相独立的,修改一个之后并不需要整个重新编译(因为java是动态加载、链接)。
编译OpenJDK的坑比较多,所以我建议在文档中增加这种容易成功的方式。

@年轻人啊不要熬夜 验证成功后就可以加上了。多谢分享!

@年轻人啊不要熬夜 验证成功后就可以加上了。多谢分享!

@年轻人啊不要熬夜 已验证成功,会在八月四日的更新中加到文档里。

@年轻人啊不要熬夜 已验证成功,会在八月四日的更新中加到文档里。

@年轻人啊不要熬夜 文档已更新。参见复制需要的 OpenJdk 组件到 Maple 构建目录中的第二个方法

年轻人啊不要熬夜 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
478038 w angler 1578925124
C++
1
https://gitee.com/openarkcompiler-incubator/maple_engine.git
git@gitee.com:openarkcompiler-incubator/maple_engine.git
openarkcompiler-incubator
maple_engine
maple_engine

搜索帮助

A270a887 8829481 3d7a4017 8829481