Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试
在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机。
这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧。
1.安装
首先我们确定下我们安装的Ubuntu系统是否已经安装了java环境。
进入终端,敲入命令su,进入root模式(当然也可以省掉这一步),敲入命令java -version。如果看到这个界面,说明尚未安装Java环境,
Ps:我们的课程中曾经讲过如何删除一个老的jdk,这里就略过不讲了。
继而,让我们到oracle的网站,去下载jdk,https://www.oracle.com/technetwork/java/javase/downloads/index.html。
为了避免别人说我太保守,这次我回到十年前的激进状态,下载最新版的jdk10。如果我们要配置的这台机器,是用来开发生产代码,我建议你回退至少一个主版本。
我使用fireforx默认下载的,下载完毕后,我们可以在归档管理器中找到它。当然,对于新手来说,一定很好奇它在整个Ubuntu文件系统中的位置。
我们打开文件管理器(对照为windows下的“我的电脑”),默认的是进入当前账户的主目录(这有点像大家习惯用的windows的user目录)。而这个当前账户,一般又不是root用户,所以我们看到的界面大概是下面这个样子的。
但,firefox的默认下载路径是在root根目录的tmp目录下。那么疑问来了,你会发现在上面的界面中,我们不太容易找到root的tmp。
进入root目录
那怎么找到它呢?
一种方式是在上面的界面中,依次如下操作
通过这种方式来进入到root根目录,我们只有浏览权限。
另一种方式是在终端中敲入命令:sudo nautilus,然后输入密码,在弹出的文件系统中点击“文件系统根目录”。然后,我们终于到了根目录,同时发现了tmp文件夹。
在tmp目录下,有一个叫做mozilla_yourname0的文件夹,点进去,就是我们刚才下载的jdk文件包了。
接下来,我们要把jdk安装到哪?
如果是windows,我们随便创建一个文件夹,或者是安装包的话,我们一路默认安装到program files下就行。但正常情况下,我们会规整一下自己的文件夹,那么,在Ubuntu下也一样,我们也需要大致了解下各个目录还是干什么的,以及按照约定俗成,我们应该在哪里放置我们即将要安装的jdk。
Linux目录介绍
在解药linux目录,我们还是得从介绍root根目录讲起。为什么root目录对我们如此重要,我们乖乖的在当前用户的主目录待着不是很好嘛?
好是好,但是我们是开发人员,我们需要折腾,就比如我装完windows系统,第一件事情是激活administrator,然后切换到该用户登录状态下一样。
在root目录,有这样一些主要的目录:
1:bin,系统的二进制可执行文件
2:sbin,只有root才能访问的可执行文件
3:etc,系统配置文件
4:usr(不是user哦,是unix shared resources),很重要哦,可以理解为C:/Windows/,
/usr/lib理解为C:/Windows/System32,
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/usr/src:系统级的源码目录。
/usr/local/src:用户级的源码目录。
当然,上面只是给出一般的建议,并不一定非要照此很教条的放置文件。
5:dev(不是develop,是device),存放设备文件,驱动等
6:root,root用户的用户主目录(区别于根目录)
7:boot,系统启动时需要用到的文件
8:mnt(mount),root安装临时文件的安装点
9:lib,放置系统运行和第三方程序运行所依赖的lib库
10:tmp,放置各种临时文件
11:var,放置运行时需要改变数据的文件
12:opt:opt有可选的意思,也是用户级的程序目录,可以理解为D:/Software。比如,我们在下一篇要安装的idea,我们就打算放在这个目录下。
经过上面的了解,我们知道了安装软件最好放置到usr下,于是,我们 该目录下创建一个java1002文件夹。
不过,如果我们是直接通过桌面系统进入到root根目录的,则会发现“新建文件夹”是灰显的。这个时候,我们就要通过sudo nautilus进入的桌面系统才能有权限去创建文件夹。
创建完毕,把jdk包剪切到新目录下,然后提取它。
如果使用命令来提取的话,是:
tar –xvf jdk-10.0.2-linux-x64.tar.gz –C /usr/local/java1002
在Ubuntu下,解压即安装。现在,我们需要配置java的几个环境变量。
2.配置
习惯了使用windows的学员一定遇到过这种问题,就是我们安装软件的时候往往会问是否只允许当前用户使用。在Ubuntu下其实也有类似的问题。一般来说,Ubuntu的配置我们可以在两个地方配置,
全局配置文件:
/etc/profile
/etc/bashrc
当前用户配置文件:
~/.bash_profile
~/.bashrc
这4个地方到底有什么区别?
profile和bashrc文件的区别
/etc/profile:主要用来设置系统环境变量,比如$PATH,对所有用户有效。
/etc/bashrc:设置系统-bash shell相关的参数,对所有用户生效。用户运行bash命令,使用的参数就在这里。
~/.bash_profile:设置环境变量,功能同/etc/profile 类似,对当前用户有效。
~/.bashrc: 作用类似于/etc/bashrc, 对当前用户有效。
注意,~指的是当前用户的主目录。如果当前用户是root,那么~就是/root/,否则就是/home/yourname/。
还有一点需要注意,
~/.bash_profile 是只有用户登录时才会生效,而~/.bashrc 是non-login 方式运行的,即只要以该用户身份运行命令行就会读取该文件。
Java环境变量配置
通过上面的描述,我们知道,java环境变量最好是在/etc/profile中配置。同样,我们要sudo nautilus下找到该文件,然后在末尾加上
#JAVA
export JAVA_HOME=/usr/java1002/jdk-10.0.2_linux-x64_bin/jdk-10.0.
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=${JAVA_HOME/lib}:.
注意,这里是给有经验的同学说的。在jdk10中,已经没有了jre目录,所以在配置中,我们也不需要配置jre的相关信息。
保存,关闭。
Ps:也可以在终端通过命令:sudo vim /etc/profile打开文本编辑器,按<Insert>键进入编辑模式,填入内容,按<Esc>键退出编辑模式,接着按":"再输入”wq!“保存并退出。
在终端中敲入命令,
source profile
或者,我们也可以重启Ubuntu,让配置生效。
此刻,再让我们敲入命令 java -version,当你看到这个界面的时候,就说明我们成功了
3.测试
接下来,让我们回到当前用户的主目录,我们去创建一个javacode的目录,这个目录下,我们将要去放置第一个java程序了。
首先,打开文本编辑器,然后输入代码:
public class HelloZuikc{
public static void main(String args[]){
System.out.println("Hello zuikc.com");
}
}
紧接着,到终端中,去到文件所在目录,
javac HelloZuikc.java
如果命令执行成功,则会发现多了一个HelloZuikc.class文件,继而执行:
java HelloZuikc
一切大功告成,如下:
华丽分割线(以下是广告时间)
===========================================================
1:最课程JavaEE+互联网分布式新技术开班进行中,你想学习不一样的Java开发技术,来http://www.zuikc.com看看吧;
2:最课程陆敏技在云栖社区与Java编码标准制定者阿里孤尽带来的Java专题:https://yq.aliyun.com/promotion/651
更多技术文章和开班信息请加入,
QQ群:
Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试的更多相关文章
- Java全栈程序员之08:MAVEN+JAVA配置
从Spring3.0开始,Spring支持以Java配置的方式来代替XML配置.这一点说起来其实有点可笑,XML配置的方式最初被创建出来就是为了让配置与程序员无关.可是最终我们发现,绝大多数的那些配置 ...
- Java全栈程序员之03:Ubuntu下安装idea
JetBrains的产品我曾经用过很长一段时间,它们是resharper和dotcover.VS号称宇宙最强IDE,直到它遇到了resharper,我们才知道,原来vs可以更好.DotCover是一个 ...
- Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
在安装MySQL之前,我们先来介绍一下Ubuntu下软件的安装方式.首先回顾下,我们安装JDK,使用的是后缀名为tar.gz的安装包.安装idea,使用的是tar.gz:那有没有别的安装方式呢? 1. ...
- Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
使用idea绝不是开发一个Hello World这么简单,现在我们要使用idea进行企业级开发(也就是JavaEE)的准备了,那么首先,我们就得有一个web应用服务器.选什么呢?当然首选是大名鼎鼎的T ...
- Java全栈程序员之01:做个Linux下的程序猿
Windows10正在成为史上口碑最差的Windows系统 (图侵删) 我曾经花了数次1小时去寻找解决方案去关闭自动更新,包括停掉服务.修改注册表等等.但是都没有成功. 微软自身是知道这个问题的,但就 ...
- Java全栈程序员之09:IDEA+GitHub
GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装 ...
- Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目
在上一篇我们介绍了如何在IDEA中使用MAVEN,以及如何创建依赖等.那么在这一篇中,我们就试图搭建一个生产级的解决方案,大家可以使用这个解决方案作为骨架代码来搭建自己的开发环境. 在这里,我们要完成 ...
- Java全栈程序员之06:IDEA中MAVEN项目依赖及运行
MAVEN已经成为事实上的企业项目开发中的项目类型.无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目.严格意义上来说,MAVEN不是一种新的JavaEE项目类型.它凌驾于所以的项目类 ...
- [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言
受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天 ...
随机推荐
- OCM_第六天课程:Section3 —》数据库可用性
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- 并发之AQS原理(一) 原理介绍简单使用
并发之AQS原理(一) 如果说每一个同步的工具各有各的强大,那么这个强大背后是一个相同的动力,它就是AQS. AQS是什么 AQS是指java.util.concurrent.locks包里的Abst ...
- java 运算符 与(&)、非(~)、或(|)、异或(^)逻辑操作符 与(&&) 或(||) 非(!)
按位与&: 只要对应的二个二进位都为1时,结果位就为1 按位或|:只要对应的二个二进位有一个为1时,结果位就为1 按位异或^:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1) ...
- js事件驱动函数
输入框 获得光标的这个行为叫做获取焦点 失去光标的这个行为叫做失去焦点 blur 失去焦点 1.获取标签的时候,一定要先等页面加载完成,再去获取这个标签. 可以将整个script代码写在body的下面 ...
- Zookeeper单机安装部署与配置(二)
在上篇博客中简单介绍了Zookeeper的特点和应用场景,详情可参考:<Zookeeper简介(一)>,那么这篇博客我们介绍一下关于Zookeeper的单机模式安装步骤与配置. 环境准备 ...
- C#泛型(一)
简介: 先看看泛型的概念--“通过参数化类型来实现在同一份代码上操作多种数据类型.利用“参数化类型”将类型抽象化,从而实现灵活的复用”. 很多初学者在刚开始接触泛型的时候会比较难理解 “泛型” 在这里 ...
- 详解申请微信h5支付方法,开通微信h5网页支付接口(转)
现在大街小巷的商家都在使用微信支付,但是一些商家使用的是个人微信收款,这个虽然很便利,但是如果你想要数据统计汇总,让客户在网络上在线付款,就需要用到微信的h5支付. 微信h5支付 今天子恒老师跟你分享 ...
- hdu 2157 从a点走到b点刚好k步的方案数是多少 (矩阵快速幂)
n个点 m条路 询问T次 从a点走到b点刚好k步的方案数是多少 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值把 给定的图转为邻接矩阵,即A(i,j)=1当且仅当存 ...
- [转] webpack3.0踩坑:postcss-loader的使用
解决方案: 只是换了一种引入方式,解决了 1,创建postcss.config.js文件,添加如下代码:(引入autoprefixer插件) 1 2 3 4 module.exports = { ...
- ThreadPoolExecutor线程池的分析和使用
1. 引言 合理利用线程池能够带来三个好处. 第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗. 第二:提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执行. 第 ...