新手在Linux上安装JDK时,不知道应该将JDK安装在哪比较合适。首先简要了解下Linux中部分目录的作用。

/bin---用来贮存用户命令。/usr/bin 也被用来贮存用户命令。  
/sbin---许多系统命令(例如 shutdown)的贮存位置。/usr/sbin 中也包括了许多系统命令。  
/root---用户(超级用户)的主目录。  
/mnt---该目录中通常包括系统引导后被挂载的文件系统的挂载点。比如,默认的光盘挂载点是 /mnt/cdrom/。
/boot---包括内核和其它系统启动期间使用的文件,最大不超过200M。 
/lib---包含许多被 /bin 和 /sbin 中的程序使用的库文件。
/usr/lib---中含有更多用于用户程序的库文件。 
/dev---贮存设备文件。  
/etc---包含许多配置文件和目录。  
/var---用于贮存variable(或不断改变的)文件,例如日志文件和打印机假脱机文件,虚拟机镜像文件等。  
/usr---包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。  
/proc---一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。  
/initrd---用来在计算机启动时挂载 initrd.img 映像文件的目录以及载入所需设备模块的目录。不要删除 /initrd 目录。如果你删除了该目录后再重新引导 Red Hat Linux 时,你将无法引导你的计算机。  
/tmp---用户和程序的临时目录。 /tmp 给予所有系统用户读写权。  
/home---用户主目录的默认位置。  
/opt---可选文件和程序的贮存目录。该目录主要被第三方开发者用来简易地安装和卸装他们的软件包。
/lost+found---被 fsck 用来放置零散文件(没有名称的文件)。

/lib 是内核级的;/usr/lib 是系统级的;/usr/local/lib 是用户级的。仅仅被 /usr 目录下的程序所使用的共享库不必放到 /lib 目录下。只有 /bin 和 /sbin 下的程序所需要的库有必要放到 /lib 目录下。

在传统的unix系统中,/usr 通常只包含系统发行时自带的程序,而/usr/local 则是本地系统管理员用来自由添加程序的目录。这里有一条严厉而牢固的规则:除非在里面创建目录,unix发行版不得使用 /usr/local 。对于Linux发行版,如 RedHat, Debian 等等,一个可能的规定是:/usr 目录只能由发行版的软件包管理工具负责管理,而对 /usr/local 却没有这样做。正是因为采用这种方式,软件包管理工具的数据库才能知道在 /usr 目录内的每一个文件。

因此JDK可能比较合适的位置是 /usr/local/lib 下。我一般安装到 /usr/local/java 下(如/usr/local/java/jdk1.7),这样避免搞乱 /usr/local/lib 目录。

配置JAVA环境变量

在Linux中一般有三个配置环境变量的位置:

  • /etc/profile:如果你的计算机仅仅作为开发使用时推荐使用这种方法,所有用户的shell都有权使用这些环境变量。
  • ~/.profile:这个是最安全的方法,控制JAVA到当前用户。如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的 .profile。
  • /etc/profile.d/java.sh:这种方式为所有用户增加JAVA环境变量,并且一启动就生效。强烈不建议这个方式,除非在你个人开发的计算机上。

~/.profile与~/.bash_profile

在某些Linux的发行版上,可能找不到~/.profile而找到一个与之很接近的文件~/.bash_profile,下面简要分析下这两个文件。

  • ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。~/.bash_profile 是交互式、login 方式进入 bash 运行的;~/.bashrc 是交互式 non-login 方式进入 bash 运行的;通常二者设置大致相同,所以通常前者会调用后者。
  • ~/.profile:若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。另外,图形模式登录时,此文件将被读取,即使存在~/.bash_profile和~/.bash_login。

Linux下JDK安装位置的更多相关文章

  1. windows+linux下jdk安装及java环境变量配置

    对于初学java的用户来说,可能第一件要做的事情就是安装jdk及配置环境,以下内容主要讲述windows及linux下jdk的安装以及环境变量的配置. 1.首先下载相应平台可用版本jdk安装文件,可以 ...

  2. Linux 下JDK安装

     ubuntu下安装jdk  sudo apt-get install openjdk-8-jdk =============================================== Ce ...

  3. Linux下 JDK安装

    在linux下安装JDK步骤如下: 第一步:查看Linux自带的JDK是否已安装 (1)查看jdk: [root@web-server ~]# rpm -qa|grep jdk ← 查看jdk的信息或 ...

  4. Linux下JDK安装笔记

    环境说明: Linux版本: CentOS6.2   JDK:jdk-7u60-linux-x64.tar.gz 1.下载jdk-7u60-linux-x64.tar.gz,本人是放到了~/工具 目录 ...

  5. Linux下JDK安装

    最近在学习linux,倒腾了半天.终于把jdk安装好了,写篇博客记录下来,关键是jdk环境变量的配置和保存了 我用的SecureCRT连接linux,然后再在SecureCRT上敲命令,关于Secur ...

  6. Linux下jdk安装过程

    注意:rpm 与软件相关命令 相当于 window 下的软件助手 管理软件 1 查看当前 Linux 系统是否已经安装 java 1)在命令窗口输入,可以查看系统自带的OpenJDK版本信息. jav ...

  7. linux下jdk安装步骤

    1. 登录Linux,切换到root用户 su root 获取root用户权限,当前工作目录不变(需要root密码) 或 sudo -i 不需要root密码直接切换成root(需要当前用户密码) 2. ...

  8. linux下jdk安装 failed /usr/local/jdk1.6.0_10/jre/lib/i386/client/libjvm.so

    今天在fedora core 4下面安装jdk1.6后,运行java -version,没有出现相关的版本信息,而是出现了以下错误: dl failure on line 685Error: fail ...

  9. Linux下Jdk的安装和jdk环境变量的设置

    我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题.什么是环境变量?如何定制环境变量?我将在下面做一些介绍.一.什么是环境变量?Linux是一个多用户的操作系统.多用户意味着每个 ...

随机推荐

  1. ASP.NET树形控件TreeView的递归绑定

    来自:http://blog.csdn.net/xqf003/article/details/4958727

  2. 部分常见ORACLE面试题以及SQL注意事项

    部分常见ORACLE面试题以及SQL注意事项 一.表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL, PRIMARY ...

  3. 去除html标签 正则 <.+?> 解释

    http://baike.baidu.com/link?url=2zORJF9GOjU8AkmuHDLz9cyl9yiL68PdW3frayzLwWQhDvDEM51V_CcY_g1mZ7OPdcq8 ...

  4. 【转】Android设计中的.9.png

    来源:http://isux.tencent.com/android-ui-9-png.html Android设计中的.9.png 注意:当使用9.png做TextView背景时,一定要设置内容区域 ...

  5. [原]Unity3D深入浅出 - 脚本开发基础(Scripts)

    常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每 ...

  6. Asp.net调用百度搜索引擎

    ASP.NET 调用百度搜索引擎 百度搜索引擎提供了一段嵌入到页面中的代码 <form action="http://www.baidu.com/baidu" target= ...

  7. python扩展实现方法--python与c混和编程

    前言 需要扩展Python语言的理由: 创建Python扩展的步骤 1. 创建应用程序代码 2. 利用样板来包装代码 a. 包含python的头文件 b. 为每个模块的每一个函数增加一个型如PyObj ...

  8. J2EE的若干问题

    1.问题:jsp中out.println页面显示不出换行效果.例如: out.println("唱歌"); out.println("跳舞"); 以上代码的结果 ...

  9. UESTC 250 windy数(数位DP)

    题意:题意:求区间[A,B]之间的,不含前导0,且相邻两数位之间相差至少为2的正整数有多少个. 分析:dp[i][j]表示,长度为i.以j为结尾的表示的个数,再加一个前导0判断即可 #include ...

  10. 卡尔曼滤波器【Kalman Filter For Dummies】

    搬砖到此: A Quick Insight     As I mentioned earlier, it's nearly impossible to grasp the full meaning o ...