一文搞懂Java环境,轻松实现Hello World!
在上篇文章中,我们介绍了Java自学大概的路线。然而纸上得来终觉浅,今天我们教大家写第一个java demo。(ps:什么是demo?Demo的中文含意为“示范",Demo源码可以理解为某种计算机语言的示例代码)
今天的文章将分为三个部分:
简单介绍JRE、JDK、JVM
介绍环境安装流程
编写运行hello,word
一、JRE、JDK、JVM概念及关系
JVM是Java Virtual Machine(Java虚拟机)的缩写。JVM具有的跨平台特性,决定了Java语言具有强移植性的特点。因为JVM只识别class类文件,针对不同的系统有不同的 jvm 实现,再针对class类文件与其对应的操作系统交互,一次编译,多处运行便是这个道理。
JRE是JAVA Runtime Environment 三个单词的首字母缩写,顾名思义即为Java运行环境,JRE中包含了JVM及其他JAVA核心类库。若你只是Java程序的使用者,那么你安装JRE便可满足你的需求。
JDK是Java Development Kit的缩写,即为Java开发工具包,JDK中包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,等工具软件,还包含了java程序编写所需的文档和demo例子程序。以及其他java开发工具,简而言之,JDK是提供给java开发者使用的。
以一张自己做的图来表达三者之间的关系:

二、Java 环境安装
在介绍了三者关系之后,我们应该清楚开发者需要的JDK,我们需要先下载JDK,下面是下载JDK8的链接
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
点开链接后,勾选上accept,根据系统类型选择对应的版本,我这边选的是windows64位

现在JDK8及以下版本在官网下载需要登录Oracle账户了,有账户的可以登录下载,没有账户的就需要注册了。如果嫌麻烦的可以从下面网盘地址直接下载。jdk8-64位
https://pan.baidu.com/s/1slmpnvn
下载完了之后,开始安装,一直点击下一步,在选择安装路径时,记录住安装路径,等会儿配变量时需要。

然后一直点击下一步,完成安装即可。
接着返回电脑桌面,右键计算机,点击左侧高级系统设置,点击环境变量,如下图,再点击新建

变量名为JAVA_HOME,变量值为刚刚安装时的安装路径,我的路径为C:\Program Files\Java\jdk1.8.0_05\,你需要换成你的安装路径,新建完后点击确定。然后在系统变量中找到Path变量,双击他进入编辑状态,将光标移动到变量值的最前面,输入%JAVA_HOME%\bin; 接着一直点击确定就可以了。
此时打开cmd,输入java -version 出现版本号即为JAVA环境安装成功。
三、Hello,World!
接下来我们编写第一个hello,world程序~可别写出bug像这样..hhh

来看下我们的代码:

可以用记事本,也可以用其他编辑器,我这边用的是notepad++,一个注意点就是注意文件名要和类名一样,文件名应该是 公有类名.java,我这边类名为Demo,文件名为Demo.java,我这边将其保存在D:\下。
打开cmd,cd 到D:\下,输入javac 文件名 编译成class文件

接着输入 java 类名 运行类文件,打印出Hello world 即运行成功~

个人微信订阅号: Java从零单排
分享java学习资料链接,交流Java学习经验

一文搞懂Java环境,轻松实现Hello World!的更多相关文章
- 一文搞懂Java引用拷贝、浅拷贝、深拷贝
微信搜一搜 「bigsai」 专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况 ...
- 一文搞懂Java引用拷贝、深拷贝、浅拷贝
刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝.拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的! 在对象的拷贝中,很多初学者可能搞不清到底是拷贝 ...
- 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 一文搞懂 Java 线程中断
在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程的方法吗?答案是肯定的,它就是我们今天要分 ...
- 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 一文搞懂--Java中重写equals方法为什么要重写hashcode方法?
Java中重写equals方法为什么要重写hashcode方法? 直接看下面的例子: 首先我们只重写equals()方法 public class Test { public static void ...
- 一文搞懂Java/Spring/Dubbo框架中的SPI机制
几天前和一位前辈聊起了Spring技术,大佬突然说了SPI,作为一个熟练使用Spring的民工,心中一紧,咱也不敢说不懂,而是在聊完之后赶紧打开了浏览器,开始的学习之路,所以也就有了这篇文章.废话不多 ...
- 一文搞懂 Java 中的枚举,写得非常好!
知识点 概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, ...
- 一文彻底搞懂Java中的环境变量
一文搞懂Java环境变量 记得刚接触Java,第一件事就是配环境变量,作为一个初学者,只知道环境变量怎样配,在加上各种IDE使我们能方便的开发,而忽略了其本质的东西,只知其然不知其所以然,随着不断的深 ...
随机推荐
- ssh设置无密码登录
设置无密码登录此处设为有主机a登录到主机b 1.在主机a生成公钥 ssh-keygen -t rsa 之后有导航(其实一直回车就可以) 2.此时在主机a/home/YOURHOSTNAME/.ssh ...
- 【转】shell expect spawn、linux expect 用法小记 看着舒服点
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...
- jquery checkbox反复调用attr('checked', true/false)只有第一次生效 Jquery 中 $('obj').attr('checked',true)失效的几种解决方案
1.$('obj').prop('checked',true) 2. $(':checkbox').each(function(){ this.checked=true; }) 为什么:attr为失效 ...
- java术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...
- 启动Android App时,动态将Sqlite数据库文件导入到手机中类方法
package com.aqioo.db; import java.io.File; import java.io.FileOutputStream; import java.io.InputStre ...
- 2.2.9静态同步synchronized方法与synchronized(class)代码块
关键字synchronized还可以应用在static静态方法上,这样写那是对当前的*.java文件对应的class类进行持锁, 测试如下 package com.cky.bean; /** * Cr ...
- 图解Eclipse中配置Maven并创建Maven的Web工程
打开eclipse,Windows->Preferences,如下图所示: 2 在Preferences作如下配置,如下图所示: 3 配置完Maven的安装目录后,还需要配置Maven的配置 ...
- 当有多个form表单请求时如何处理?
问题:当有多个表单请求时如何处理?两种获取form表单 name属性值来区分是哪一个form表单.问题:如何获取name的值呢?<form name="myForm" met ...
- hdu 5093 放置战舰 二分图匹配
http://acm.hdu.edu.cn/showproblem.php?pid=5093 给定一个MxN大小的图,有3种点,冰山.浮冰.海.现在希望能在图中放置尽可能多的船.船的四个方向上不能有其 ...
- AngularJS 杂项知识点
1.要用ngChange要同时使用ngModel,下拉选择获取当前选中值. 2.打包代替动态加载(js文件) requirejs真正的价值在于模块化,不是动态加载,angularjs本身有模块化机制, ...