- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经下载了 JDK 8.20:https://jdk8.java.net/download.html
里面有一个src.zip,看起来像是嵌入的例子,但是没有makefile或者其他构建脚本。
目录/launcher/包含文件:
defines.h
emessages.h
java.c
java.h
java_md.h
java_md_common.c
java_md_solinux.c
java_md_solinux.h
jli_util.c
jli_util.h
main.c
manifest_info.h
parse_manifest.c
splashscreen.h
splashscreen_stubs.c
version_comp.c
version_comp.h
wildcard.c
wildcard.h
我制作了这个小 build.sh 脚本:
# -m32 = 32bit for embedding
# -I. for fake jvm.h, because it does not exist and fails on including it otherwise
options="-m32 -I/root/openjdk8/jdk1.8.0_20/include/ -I/root/openjdk8/jdk1.8.0_20/include/linux/ -I."
echo "COMPILE java.c"
gcc -c java.c -o java.o $options
echo "COMPILE java_md_common.c"
gcc -c java_md_common.c -o java_md_common.o $options
echo "COMPILE java_md_solinux.c"
gcc -c java_md_solinux.c -o java_md_solinux.o $options
echo "COMPILE jli_util.c"
gcc -c jli_util.c -o jli_util.o $options
echo "COMPILE main.c"
gcc -c main.c -o main.o $options
echo "COMPILE parse_manifest.c"
gcc -c parse_manifest.c -o parse_manifest.o $options
echo "COMPILE splashscreen_stubs.c"
gcc -c splashscreen_stubs.c -o splashscreen_stubs.o $options
echo "COMPILE version_comp.c"
gcc -c version_comp.c -o version_comp.o $options
echo "COMPILE wildcard.c"
gcc -c wildcard.c -o wildcard.o $options
出现这些错误:
./build.sh
COMPILE java.c
java.c: In function âContinueInNewThreadâ:
java.c:1885:29: error: storage size of âargs1_1â isnât known
COMPILE java_md_common.c
java_md_common.c: In function âProgramExistsâ:
java_md_common.c:67:17: error: storage size of âsbâ isnât known
java_md_common.c:70:26: error: âS_IEXECâ undeclared (first use in this function)
java_md_common.c:70:26: note: each undeclared identifier is reported only once for each function it appears in
java_md_common.c: In function âJLI_ReportErrorMessageSysâ:
java_md_common.c:155:21: error: âerrnoâ undeclared (first use in this function)
java_md_common.c: In function âProcessDirâ:
java_md_common.c:214:5: error: unknown type name âDIRâ
java_md_common.c:222:15: warning: assignment makes pointer from integer without a cast [enabled by default]
java_md_common.c:226:17: warning: assignment makes pointer from integer without a cast [enabled by default]
java_md_common.c:228:18: error: dereferencing pointer to incomplete type
java_md_common.c:229:18: error: dereferencing pointer to incomplete type
java_md_common.c:231:22: error: dereferencing pointer to incomplete type
java_md_common.c:233:22: error: dereferencing pointer to incomplete type
java_md_common.c:236:46: error: dereferencing pointer to incomplete type
java_md_common.c:237:67: error: dereferencing pointer to incomplete type
java_md_common.c:239:25: error: dereferencing pointer to incomplete type
java_md_common.c:242:48: error: dereferencing pointer to incomplete type
java_md_common.c: In function âFindBootStrapClassâ:
java_md_common.c:494:59: error: âRTLD_DEFAULTâ undeclared (first use in this function)
COMPILE java_md_solinux.c
java_md_solinux.c:27:20: fatal error: jvm_md.h: No such file or directory
compilation terminated.
COMPILE jli_util.c
COMPILE main.c
In file included from main.c:33:0:
defines.h:37:2: error: #error "FULL_VERSION must be defined"
defines.h:44:2: error: #error "JDK_MAJOR_VERSION and JDK_MINOR_VERSION must be defined"
main.c: In function âmainâ:
main.c:128:20: error: âFULL_VERSIONâ undeclared (first use in this function)
main.c:128:20: note: each undeclared identifier is reported only once for each function it appears in
main.c:129:20: error: âDOT_VERSIONâ undeclared (first use in this function)
COMPILE parse_manifest.c
COMPILE splashscreen_stubs.c
COMPILE version_comp.c
COMPILE wildcard.c
有人知道怎么编译吗?
最佳答案
我现在面临同样的问题。也许可以通过为您的设置提供 jvm.h 和 jvm_md.h 来解决。两者都包含特定于 jvm 的符号,并且 jvm_md.h 还包含额外的平台相关符号。因此,您需要为目标 jvm 选择 jvm.h,为目标平台选择 jvm_md.h。要获取 Oracle 的 OpenJDK8 的这些 header ,请转到 http://download.java.net/openjdk/jdk8/并下载源代码。 (对于 Java 7,它是 http://download.java.net/openjdk/jdk7/ 等)
在此文件中,您将在文件夹中找到 jvm.h/openjdk/jdk/src/share/javavm/export/
jvm_md.h 在文件夹中:/openjdk/jdk/src/[目标平台]/javavm/export/
请注意,对于 Linux 和 Bsd,此路径不存在(/openjdk/jdk/src/[目标平台] 仅包含这些情况下的文档)。不过,我相信 Solaris 版本也旨在为这些系统提供服务。
希望这有助于...
关于java - 如何构建 OpenJDK 8 的 C 代码 src.zip/launcher/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23392649/
首先我觉得奇怪的是 OpenJDK project page 上没有错误跟踪器的链接。 ,然后我找到了bugs.openjdk.java.net ,但仅适用于经过认证的项目成员。象牙塔之外的人如何贡献
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 去年关闭。 Improve this questio
openjdk-7-jre-headless 和 openjdk-7-jre 有什么区别。 当我在 Ubuntu 的终端中输入 java 时,它提示 openjdk-7-jre-headless 而不
我无法理解 Java JRE 的一些基础知识。 我需要在嵌入式系统中运行 Java 代码,为此我需要在 Linux 内核中安装一个最小的 Java 运行时环境,也就是说,执行 Java 二进制文件所需
我正在使用 Redhat 6,我正在使用 java 1.6,因为我需要使用 java 1.6。我使用更新我的红帽yum update 和 openjdk 1.8 已自动安装。我尝试使用 删除 open
我在 Windows 上开发,在 Linux 上部署。我找不到windows和linux版本相同的OpenJdk。因此,我为 Windows 安装了 openjdk_1.7.0_u80-unoffic
Wildfly 13 和 Wildfly 14 支持哪些 OpenJDK 版本?有人可以向我提供支持矩阵吗? 最佳答案 我使用 WildFly 14 和 Open JDK 11 - 到目前为止没有任何
需要使用需要openjdk7的程序。运行 Debian 9 Mate。 当我尝试安装时获取以下内容 $sudo apt-get install openjdk-7-jre openjdk-7-jre-
我正在使用带有 heroku 插件的 IntelliJ 14,并且成功连接到 heroku。但是我无法对 heroku 进行更改。 我的应用程序使用 grails 2.5 和 Java 8。 似乎 h
在最近的许多情况下,但现在我尝试使用安装程序,它会抛出错误并显示“Java 未安装”之类的内容,即使 JAVA_HOME 设置为 Windows 10 64x 的 AdoptOpenJDK 安装程序安
我使用存储库 ppa:openjdk-r/ppa 在 ubuntu 14.04 LTS 上安装 openjdk-8-jre-headless。从今天早上开始一切正常,但现在安装因错误消息而中断 ope
这个问题在这里已经有了答案: Difference between openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib (2 个回答) 关
根据 https://github.com/docker-library/docs/blob/master/openjdk/README.md#make-jvm-respect-cpu-and-ram
我正在使用 IKVM 将 java 应用程序包装到 dll 中。我对 IKVM 不是特别熟悉,所以我提前为没有提供足够的信息表示歉意。无论如何,我正在使用一个 C# 库来调用 IKVM 创建的 dll
当我安装 netbeans 时,它让我可以选择 java 环境,我有 3 个选项,oracle java 和这两个(java-1.7.0-openjdk-i386 和 java-7-openjdk-i
使用brew和/或brew cask安装java 8和sbt显然是可能的,我遇到的问题是,brew 将 java 13 安装为 sbt 依赖项, 而且我不知道返回到默认 java 8 的一般方法,因为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我已经在 Ubuntu 机器上运行这个旧的 Caucho Resin (4.0.41) 很多年了。我需要停用该服务器,因此我尝试在新的 Ubuntu 18.04.4 服务器上设置树脂 4.0.64,经
我刚刚开始使用 Playframework (Java) 开发一个应用程序,我认为使用支持 Playframework 的 Heroku 测试它是个好主意。 在 Heroku 上 Playframew
我尝试安装支持 Java 11 的最新稳定 Jenkins 版本。因此,在安装 Java 11(JDK) 后,我收到 Jenkins 的错误,指出发现了不正确的 java 版本。 因此卸载了 Java
我是一名优秀的程序员,十分优秀!