Java程序要通过先编译,后解释两个步骤java
编译型:高级语言源码 -->机器码(一次性) 生成可执行程序,脱离开发环境,在指定平台上运行。(C/C++/Objective-C/Swift/Kotlin)编程
解释型:每执行一次,都须要编译一次,效率低,可移植性高(JavaScript/Ruby/Python)windows
伪编译型:浏览器
Java编译后生成的是与平台无关的字节码(*.class文件),该字节码文件面向JVM,用Java解释器能够来解释执行这个字节码文件。 编辑器
JVM(Java Virtual Machine)负责解释字节码文件,任意平台的JVM向编译器提供相同的编程接口(任意平台JVM内部不一样),而编译器只须要面向JVM,生成JVM能理解的代码,而后由JVM来解释执行。在一些JVM的实现中,还会将JVM代码转换成特定系统的机器码实现,从而提升执行效率。工具
JVM是Java跨平台的关键部分。开发工具
下载安装JDK(包括Java编译器、Java运行时环境(JRE)、经常使用Java类库),即Java标准版开发包spa
JRE包含JVM,JVM是核心虚拟机,JRE还包含运行Java程序的其余环境支持。操作系统
ps:若是只是运行Java程序,能够只安装JRE。若是要开发,下载JDK便可,JDK包含JRE。命令行
Java分为:Java SE(JDK) 、Java EE (Java EE SDK->包含最新版JDK) 、Java ME 。
开发工具:JDK核心,包含了JRE
源代码:Java核心类库的源代码
公共JRE:一个独立的JRE系统,会向IE等浏览器和系统注册Java运行时环境,这样系统中任何应用程序均可以使用公共JRE。可是JDK里有JRE,不必安装公共JRE
ps:安装路径最好没有空格。
JDK 9 引入新的JMOD格式,近似JAR格式,但JMOD能够包含本地代码和配置文件。
设置PATH环境变量
windows操做系统在Path的一系列路径中依次查找命令
Linux设置PATH环境变量:
①进入当前用户的home路径,而后输入:ls -a
②使用无格式编辑器打开 .base_profile 文件
③在该文件的PATH变量后添加JDK安装路径
④在.base_profile 文件最后添加导出PATH变量的语句
⑤从新登陆Linux平台,或者执行以下命令,为了运行该文件,让文件设置中PATH变量值生效
第一个Java程序
Java源代码可使用任何无格式的文本编辑器(Windows->记事本/Editplus | Linux->VI)
在记事本中新建一个文本文件,并输入以下代码:
Java严格区分大小写
将上述文件保存为HelloWorld.java,该文件就是Java程序的源程序了。
接下来就是编译该Java源文件来生成字节码。
编译命令:javac
javac -d destdir srcFile
一般将字节码文件放在当前路劲下
javac -d . HelloWorld.java
运行后在指定路径下会生成一个HelloWorld.class文件
javac以类为单位生成相应的字节码文件,而且编译命令中省略 -d ,则默认为当前路径。
ps:还可使用Editplus
运行命令:java
java Java类名
ps:java命令后面的参数是Java类名,不是字节码的文件名,也不是源文件名。
先经过命令行进入HelloWorld.class所在的路径
输入:
java HelloWorld
能够看到输出
ps:一样可使用Editplus
CLASSPATH环境变量:
在1.4之前版本的JDK中没有设计在运行Java程序时到当前路径下搜索Java类。也就意味着,即便当前路径已经包含了HelloWorld.class ,并在当前路径下执行java命令,系统同样提示找不到HelloWorld 类。
JDK 1.5以上的版本也能够设置CLASSPATH环境变量(一般用于加载第三方类库)
若是想在运行Java程序时临时指定JRE搜索Java类的路径,则可使用-classpath选项(或用-cp选项,-cp是简写,做用彻底相同)
java -classpath dir1;dir2;dir3...;dirN Java类
多个路径在windows平台上以分号隔开,在Linux上以冒号隔开。