首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux上安装JDK

在Linux上安装JDK
EN

Stack Overflow用户
提问于 2014-04-01 12:51:36
回答 3查看 2.9K关注 0票数 0

我试图在Centos上安装JDK,但是我得到了一个错误:

代码语言:javascript
复制
[root@www opt]# rpm -ivh /opt/jdk-7u51-linux-x64.rpm
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
error: unpacking of archive failed on file /usr/java/jdk1.7.0_51/db/lib/derbyLocale_zh_CN.jar;533ab42a: cpio: read

哪里会有问题?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-01 13:09:23

请根据以下值检查下载文件的md5sum:http://www.oracle.com/technetwork/java/javase/downloads/java-se-binaries-checksum-1956892.html

如果md5sum不检查,它必须是一个坏的下载。

票数 1
EN

Stack Overflow用户

发布于 2014-04-02 03:30:51

一个简短的答案:尝试重新下载和安装。

--一个更长的答案:即使您得到了这个,但jdk正在安装。说大也大吧。这似乎是一个错误的包装,但它不是致命的。这是我机器的输出。在这个示例中,我使用了发布文件,这样您就可以看到我使用的是什么CentOS,并在我使用的rpm上执行md5sum。您会注意到,它与来自md5sum的Oracle站点链接 (上面由Kristof提供)不匹配。

接下来,我在jdk /usr/java/的目标目录上做了ls,所以您可以看到它是空的。然后运行rpm安装并执行另一个ls以显示一些文件在那里。

当然,这违背了使用rpm的目的,因为安装信息不会进入rpm数据库。如果我查询数据库,它就不会出现,并且缺少通常安装的指向“最新”和“默认”的链接

因此,我猜测,可能有一个镜像可能有一个坏的rpm,然后去了Oracle网站,并再次下载了该文件。我给它起了不同的名字,这样我就可以比较这两个文件了。这一次是成功的。

在下面的屏幕快照中,您可以看到这两个文件。最新的下载是我称为JDK-7u51-Linux86_64.rpm的下载。您可以看到md5sum显示不同的文件,但在新文件上,md5与Oracle匹配。我删除了由失败的安装创建的目录,然后运行rpm -ivh命令,它成功地完成了。/usr/java目录上的ls显示所有正确的内容,查询rpm数据库显示它已经安装。希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2018-09-27 08:45:51

您可以使用简单的脚本来完成它,您可以找到这里

它适用于Centos rpm,但您可以编辑脚本并将rpm更改为tar.gz,还可以在下面的变量中更改版本或env

代码语言:javascript
复制
BASE_URL="technetwork/java/javase/downloads"
BASE_URL_OUTPUT="$(curl -s  -L0 http://www.oracle.com/${BASE_URL}/)"
JAVA_ENVIRONMENT="JDK"
JAVA_BASE_VERSION=8
DOWNLOAD_SITE="$(echo $BASE_URL_OUTPUT | grep -m 1 -io "${JAVA_ENVIRONMENT}${JAVA_BASE_VERSION}-downloads-[0-9]*.html" -- | tail -1)"
echo "DOWNLOAD_SITE="$DOWNLOAD_SITE
DOWNLOAD_LINK_OUTPUT="$(curl -s -L -j -H "Cookie: oraclelicense=accept-securebackup-cookie" http://www.oracle.com/${BASE_URL}/${DOWNLOAD_SITE} |  grep -io "filepath.*${JAVA_ENVIRONMENT}-[${JAVA_BASE_VERSION}].*linux[-_]x64[._].*\(rpm\)" -- | cut -d '"' -f 3 | tail -1)"
echo "DOWNLOAD_LINK_OUTPUT="$DOWNLOAD_LINK_OUTPUT
curl -L -o java_rpm_packet.rpm -b "oraclelicense=a" $DOWNLOAD_LINK_OUTPUT

并安装在

代码语言:javascript
复制
yum localinstall -y java_rpm_packet.rpm
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22786468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档