在uClinux上更新java

时间:2018-05-31 14:40:15

标签: java java-8 embedded-linux glibc uclinux

我想为我们的uClinux产品更新Java ojava 8.问题是,从版本7及更高版本开始,Java似乎依赖于glibc-2.4,而安装的glibc版本是2.3.6。 在终端中运行java -version时,我收到此消息:

Error: dl failure on line 893
Error: failed /usr/java/jre/lib/i386/client/libjvm.so, because /lib/libc.so.6: version `GLIBC_2.4' not found (required by /usr/java/jre/lib/i386/client/libjvm.so)

我们正在使用crosstool工具链来构建自2006年以来未更新的uClinux映像,并且它支持的最新glibc是glibc 2.3.6。 我想知道我是否可以将uClinux glibc库更新为2.4。某些应用程序是否可能无法使用较新版本的glibc? 另一个问题是我们是否需要使用相同版本的glibc(crosstool toolcain(2.3.6)正在使用)。

最后一个问题是java 8是否依赖于Linux内核版本?目前我们使用的内核版本是linux 2.6.24。我看到嵌入java的here需要linux内核2.6.28或更高版本。 我们在java se中有相同的依赖吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

根据README-builds.html,OpenJDK 8是在Fedora 9上构建的,它有glibc 2.8(加上backports)。所以你应该升级到至少那个版本的glibc。 (尽管Fedora 9用作构建环境,但这并不意味着支持对原始Fedora 9内核运行。)

内核方面,OpenJDK 8仍然支持红帽企业Linux 5,后者使用Linux 2.6.18以及许多反向端口,其中一些支持Linux 2.6.24之后添加的新功能。我不记得OpenJDK是否使用了其中任何一个(O_CLOEXEC支持可能是候选者)。