如何在UbuntuLinux中正确地设置JAVAHOME变量
如果你 在 Ubuntu 上运行 Java 程序,使用 Eclipse、Maven或 Netbeans 等等,你将需要将JAVA_HOME环境变量设置为正确的路径。否则,你的系统将会向你控诉 "java_home 环境变量没有设置"。
在这篇初学者教程中,我将向你展示在 Ubuntu 上正确地设置 JAVA_HOME变量的步骤。这些步骤应该也适用于大多数的其它的 Linux 发行版。
设置过程包含这些步骤: 确保已安装 Java 开发工具包(JDK)。查找 JDK 可执行文件的正确的位置。设置 JAVA_HOME环境变量,并永久更改它。
步骤 1: 核查 JDK 是否已经安装
核查 Java 开发工具包(JDK)是否已经安装在你的 Linux 系统上的最简单的方法是运行这个命令:javac --version
上面的命令将核查 Java 编译器的版本。如果已经安装了 Java 编译器,它将显示 Java 版本:
如果上面的命令显示像这样未找到 javac命令的错误信息,你得先安装 JDK :
如果在你的系统上并没有安装 Java 编译器,使用这条命令来安装 Java 开发工具包 (JDK):sudo apt install default-jdk
这将在你当前的 Ubuntu 版本中安装默认的 Java 版本。如果你需要一些其它版本的 Java 版本,那么你必须 在 Ubuntu 中安装 Java 时具体指出它的版本。
在你确保 Java 编译器存在于你的系统之中后,接下来就到了查找其位置的时候了。
步骤 2: 获取 JDK 可执行文件(Java 编译器)的位置
可执行文件通常位于 /usr/lib/jvm目录之中。但我不会让你来玩一个猜谜游戏,让我们来找出 Java 可执行文件的路径。
使用 which 命令来获取 Java 编译器可执行文件的位置:which javac
在这里的问题是,它给出的位置实际上是一个 符号链接。你将需要按照下图执行几次:
最简单的方法是直接使用下面这条命令跟随符号链接来以获取实际的可执行文件:readlink -f `which java`
readlink命令会跟随一个符号链接。我在which java的外侧使用readlink将会使用which java的输出来替换要检查的符号链接,这被称之为命令替换。因此,在这个实例中,上面的命令大体上相当于readlink -f /usr/bin/java。
在我的示例中,可执行文件的位置是 /usr/lib/jvm/java-11-openjdk-amd64/bin/java。对你来说可能会不一样。在你的系统中,复制上述命令所获取的正确的路径。你知道,你可以在 Ubuntu 的终端中复制和粘贴。
步骤 3: 设置 JAVA_HOME 变量
现在,你已经获取了位置,使用它来设置 JAVA_HOME环境变量:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
核查 JAVA_HOME目录的值:echo $JAVA_HOME
尝试在同一个终端中运行你的 Java 程序或工程,并查看它是否工作。
这尚未结束。你刚刚声明的 JAVA_HOME环境变量是临时的。如果你关闭这个终端或开始一个新的会话,它将会再次变成空的。
为了"永久地"设置 JAVA_HOME变量,你应该将其添加到你的家目录中的.bashrc文件中。
你可以 在 Linux 终端中使用 Nano 编辑器来编辑文件。 如果你不想使用它,并想采取一种简单的复制和粘贴的方法,使用下面的命令:
首先备份你的 .bashrc文件(以防万一你把它弄坏了,你还可以将其再恢复回来):cp ~/.bashrc ~/.bashrc.bak
接下来,使用 echo 命令来追加在这一节开头使用的export命令。你应该适当地更改下面的命令,以便其正确地使用你的系统所显示的路径。echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java" >> ~/.bashrc
验证它已经被正确地添加到文件的结尾处:tail -3 ~/.bashrc
上面的 tail 命令将显示所具体指定文件的最后 3 行。
这里是上面的三个命令的全部的输出:
现在,即使你退出会话或重新启动系统,JAVA_HOME环境变量都仍将设置为你所具体指定的值。这就是你所想要的,对吧?
注意,如果你将来更改默认的 Java 版本,你将需要更改 JAVA_HOME环境变量的值并将其指向正确的可执行文件的路径。
我希望这篇教程不仅会帮助你设置 JAVA_HOME环境变量,也会教会你如何完成这项工作。
如果你仍然面临难题或者有一些疑问或建议,请在评论区告诉我。
via: https://itsfoss.com/set-java-home-ubuntu/
作者:Abhishek Prakash选题:lujun9972译者:robsean校对:wxy
本文由 LCTT原创编译,Linux中国荣誉推出
亏30亿的京东必须靠618回血618前夕,京东发布了财报,数据并不亮眼。这也是上任40天后,徐雷作为京东新任CEO的第一份财报。5月17日,京东集团发布了2022年第一季度业绩。虽然核心零售业务实现了同比增长,
数字孪生的应用与发展小到一颗螺丝,大到一座城市,数字孪生即将给我们的生活带来一场革命性的巨变。什么是数字孪生在失控玩家这部电影中,人类可以在数字的虚拟世界中娱乐工作,甚至恋爱。电影所描述的这些场景算数
TVM加速模型,优化推断TVM是一个开源深度学习编译器,可适用于各类CPUs,GPUs及其他专用加速器。它的目标是使得我们能够在任何硬件上优化和运行自己的模型。不同于深度学习框架关注模型生产力,TVM更关
高通骁龙730正式发布比肩骁龙845三星A80或将首发在2019QualcommAIDay中,高通正式发布了全新的骁龙730骁龙665移动平台。骁龙730是骁龙710的更新换代之作,小米9SE上的骁龙712相比骁龙710在架构上并没有
一图看懂凤凰卫视2018全年业绩来源格隆汇凤凰卫视发端于1996年3月31日启播的凤凰卫视中文台,以拉近全球华人距离,向世界发出华人的声音为宗旨,致力于为世界华人提供高质素的华语节目,现已拥有凤凰卫视中文台资讯台
四种软件架构,看看你属于哪个层次SimpleEasyDevOps时代如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能
谷歌云昨夜重磅发布2大技术平台,搞定7大开源公司智东西4月10日消息,今日凌晨,也就是美国时间4月9日上午9点,一年一度的GoogleCloudNext19大会在旧金山在Moscone中心如约而至。这场大会为期3天,由谷歌云举办
简讯Intel九代酷睿标压版型号规格全泄露全系大降价,小米米粉节开启AMD发布第二代锐龙PRO和速龙PRO商用处理器日前,AMD发布面向移动笔记本平台的AMDRyzenPRO3000系列(第二代)和AthlonPRO商用处理器。包含四款新品AMDR
知乎再爆变相裁员,要求业务转岗做技术,还没有补偿早在去年12月份,互联网就传出知乎开始裁员。虽然知乎对此进行否认,称只是正常人员调整,但随后多位被裁员工在脉脉上证实此事,并且对被裁员工给予N1补偿。然而进入3月份后,知乎又传出人
一加7真机照曝光弧形全面屏4800万三摄近日,微博上曝光了一组一加7的真机谍照。从照片中我们可以看到,其在开机状态下显示了关于手机页面,显示了这款新旗舰的硬件规格。从真机谍照中可以看到一加7的边框非常窄,额头和下巴部分明
共享单车翻倍涨价贵过公交,网友盼ofo涨价多赚钱还押金文AI财经社杨雅芳编明萱本文由AI财经社原创出品,未经许可,任何渠道平台请勿转载。违者必究。除了ofo,市面上常见的共享单车品牌纷纷选在4月涨价。近日,哈罗单车发布调整骑行价格公告