报错问题出现原因

第一次使用Ubuntu操作系统,很多命令及软件安装方式与以往使用的Linux操作系统(CentOS)有很大区别。
现在总结使用Ubuntu在安装JDK中,遇到的问题及解决方法。

root@slave1:~/hadoop# rpm -i jdk-7u80-linux-x64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...

安装过程问题解决步骤

百度后发现Ubuntu的软件包格式为deb,而rpm格式的包则是CentOS 相关系统所用的软件包。然后再百度一下,在Ubuntu系统中通过一定的方法也是可以很有效的安装RPM格式包的,只需3步。

1、首先安装alien这一软件,系统默认没有安装。
apt-get install alien

2、使用alien将rpm转化为deb文件
alien <包名>.rpm  当前安装的 jdk 是在 Oracle官网下载的包 jdk-7u80-linux-x64.rpm
转换过程会根据rpm包的大小等待一会儿,转换后会生成 ****.deb 文件

3、然后使用dpkg进行安装
dpkg -i jdk_1.7.080-1_amd64.deb

通过以上几个步骤,jdk 已经安装好了。java home 目录在 /usr/java/jdk_version/...

环境变量问题解决步骤

接下来就是配置JAVA的环境变量了。
在CentOS操作系统中,安装好jdk后即使没有配置环境变量直接用 java -version 命令是可以显示所安装的jdk版本的。但是在Ubuntu中配置好环境变量之后还是不可以的(如下图),还需要在进行一些配置。

出现这个错误的原因是没有找到tools.jar及rt.jar;
tools.jar是关于一些工具的类库
rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的class文件。

usr/java/jdk_version/bin 下面有个unpack200
usr/java/jdk_version/jre/bin 下面也有个unpack200
好像使用 usr/java/jdk_version/bin 的 unpack200 就可以了。

rt.jar 解决办法:
在 /usr/java/jdk_version/jre/lib 修改 rt.pack  root@master:/usr/java/jdk_version/jre/lib# ../bin/unpack200 rt.pack rt.jar

tools.jar 解决办法:
在 /usr/java/jdk_version/lib 修改 tools.pack  root@master:/usr/java/jdk_version/lib# ../bin/unpack200 tools.pack tools.jar

环境变量配置

有两种常用的配置方式
1)/etc/profile 文件配置(全局/所有用户)
vi /etc/profile
跳到最后一行,追加JAVA_HOME配置
export JAVA_HOME=/usr/java/jdk_version
export PATH=$PATH:$JAVA_HOME/bin
读取修改后的profile配置文件
source /etc/profile 或者 . /etc/profile

2)/etc/environment 文件配置(当前用户)
在PATH变量后面加上, /usr/java/jdk_version/bin . 注意分隔符为冒号(:),而不是分号(;)
读取修改后的profile配置文件
source /etc/profile 或者 . /etc/profile

最后可以使用 java -version 命令,或者 jps 命令验证 jdk 是否安装成功。

Ubuntu安装 jdk.rpm 报错问题解决的更多相关文章

  1. Ubuntu安装Jenkins是报错:The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXX

    我使用Ubuntu16.04安装Jenkins时,按照官网的要求,步骤如下(https://pkg.jenkins.io/debian-stable/): # 添加Key sudo wget -q - ...

  2. ubuntu安装VMware Tools报错enter the path to the kernel header files

    $ sudo apt-get install build-essential linux-headers-$(uname -r) cd /lib/modules/$(uname -r)/build/i ...

  3. 关于ECShop4.0安装时数据库报错问题解决

    是ECShop版本的问题,重点在$db_host不能带端口号,把这个文件 ecshop4\ecshop\install\includes\lib_installer.php 里面3处db_host开头 ...

  4. iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决

    〇.前言 <p>在iOS开发中 CocoaPods作为库依赖管理工具就是一把利器. 有了 CocoaPods则无需再通过拖 第三方库及第三方库所依赖的 framework静态库到项目中等麻 ...

  5. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? idea maven 打包报错问题解决

    mvn clean install -X -Dmaven.test.skip=true -P dev 打包报错:No compiler is provided in this environment. ...

  6. LINUX下编译安装PHP各种报错大集合

    本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...

  7. 安装SQl Server 报错 "需要 Microsoft.NET Framework 3.5 ServicePack 1" 解决方法

    前言 之前装Sql Server都没遇到过这样的问题, 昨天重装了系统之后, 然后安装SQl Server 报错,提示 "需要 Microsoft.NET Framework 3.5 Ser ...

  8. 遇到的eclipse启动报错问题解决

    遇到的eclipse启动报错问题解决 一.启动时出现Java was started but returned exit code=13 可能原因: 1.eclipse与JDK的不是都64位或者32位 ...

  9. go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量

    go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量 下载安装:go get github.com/astaxie/beego 首页 - beego: 简约 & 强大并存 ...

随机推荐

  1. 《C++ Primer Plus》第13章 类继承 笔记

    类继承通过使用已有的类(基类)定义新的来(派生类),使得能够根据需要修改编程代码.共有继承建立is-a关系,这意味着派生类对象也应该是某种基类对象.作为is-a模型的一部分,派生类继承基类的数据称源和 ...

  2. c++11 数值类型和字符串的相互转换

    string和数值类型转换 c++11提供了to_string方法,可以方便的将各种数值类型转换为 字符串类型: std::string to_string(int value); std::stri ...

  3. JavaIO再回顾

    File类 JavaIO访问文件名和文件检测相关操作 分隔符最好是使用File类提供的File.separator,使程序更加的健壮. File类提供的方法基本上是见名知意,例如getName()就是 ...

  4. 重构(Refactoring)技巧读书笔记(General Refactoring Tips)

    重构(Refactoring)技巧读书笔记 之一 General Refactoring Tips, Part 1 本文简要整理重构方法的读书笔记及个人在做Code Review过程中,对程序代码常用 ...

  5. Nmap的活跃主机探测常见方法

    最近由于工作需求,开始对Nmap进行一点研究,主要是Nmap对于主机活跃性的探测,也就是存活主机检测的领域. Nmap主机探测方法一:同网段优先使用arp探测: 当启动Namp主机活跃扫描时候,Nma ...

  6. web移动端一些常用知识

    1.去掉 a,input 在移动端浏览器中的默认样式(半透明灰色遮罩阴影) a,button,input,optgroup,select,textarea { -webkit-tap-highligh ...

  7. 拦截chrome的console.log输出

    console.log = function(){}; 这样 console.log(123) 将不会在输出任何调试信息

  8. Python - 3.6 学习第一天

    开始之前 基础示例 Python语法基础,python语法比较简单,采用缩紧方式. # print absolute value of a integer a = 100 if a >= 0: ...

  9. web站点检查简易shell脚本

    1.web样式 <h4>THE STATUS OF RS:</h4> <meta http-equiv="> <table border=" ...

  10. 最小树形图(hdu4009)

    Transfer water Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) T ...