【如何搭建Java开发环境】

【简介】

JDK的全称是用于开发Java应用程序的开发包,提供了编译、运行Java程序所需的各种工具和资源。包括Java编译器、Java运行时环境,以及常用的Java类库等。

Java运行时环境(Java Runtime Environment)JRE。是运行Java程序的必须条件。

JRM包含JVM。

JVM是运行Java程序的核心虚拟机。

JRM包含JVM、类加载器、字节码校验器以及大量的基础类库。

如果只是运行Java程序,可以只安装JRE,无须安装JDK。

Oracle仅提供JRE的下载。

Oracle把Java分为JavaSE、JavaEE、JavaME三个部分。

为Java SE和 Java EE分别提供了 JDK 和 Java EE SDK (Software Development Kit)两个开发包。有一个JavaEE SDK版本里已经包含了最新版的JDK,安装Java EE SDK就包含了JDK。

【下载和安装JDK】

①登陆:http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK-DOWNLOAD


②选择 Windows安装包


③下载 JDK-10.0.1安装包。(Accept License Agreement)


 

④下载文件   jdk-10.0.1_windows-x64_bin.exe 成功,双击运行安装。


⑤安装



Devepment Tools:JDK的核心,包括编译Java程序必需的命令工具。

包含了JRE(会安装在JDK安装目录的子目录里)也是无需安装公共JRE的原因。

Source Code:安装这个选项将会安装Java的所有核心类库的源代码。

选择不安装在有空格的路径下,这样可能导致一些未知的问题。

⑥安装完成后,可在JDK安装路径下看到如下的路径。(以jdk1.7.0_75解释)

 


bin:存放了JDK的各种工具命令,常用的javac、java等命令就挡在该路径下。

db:该路径是安装Java DB的路径。

include:一些平台特定的头文件。

jre:该路径下安装的就是运行Java程序所必需的JRE环境。

lib:该路径下存放的是JDK工具命令的实际执行程序,如果使用WinRAR打开lib路径下tools.jar文件,将看到tools.jar\sun\tools\javac 中Main.class

用于编译Java程序所使用的javac.exe命令是使用Java编写的。这个类就是lib路径下tools.jar文件中 sun\tools\javac 中Main.class类

bin下绝大部分命令都是包装了tools.jar文件里的工具类。


src.zip:该压缩文件里存放的是Java所有核心类库的源代码。

README和LICENSE等说明性文档。

【设置PATH环境变量】

编译和运行Java程序的必备2步:

①将源文件编译成字节码。【java命令】

②解释执行平台无关的字节码程序。【javac命令】

 

【测试是否能使用这两个命令】


虽然在计算机里安装了JDK(有这两个命令),但是计算机不知到去哪里找这两个命令。

Windows操作系统根据Path环境变量来查找命令。Path环境变量存储了一系列路径。系统可根据其指定路径依次查找。

若要找到,只需把java和javac两个命令所在的路径添加到Path环境变量中,就可以编译和运行Java程序了。

【Win7设置环境变量】

【计算机】右键 ->【属性】->【高级系统设置】->【高级】


单击【环境变量】


分为【用户变量】和【系统变量】

没有Path环境变量,则添加,有则修改。(Windows变量大小写不敏感)

追加变量后的值为安装的路径:D:\Program Files\Java\jdk1.7.0_75\bin



用户变量和系统变量都进行过设置后,优先使用用户变量。

【继续测试是否能使用这两个命令】

java命令测试:


javac命令测试


可以使用。

【第一个Java程序】

编辑源代码编辑器:NotePad,EditPlus等程序。

            不能用写字板或者Word编辑,该工具中会有一些隐藏的格式化字符,这些隐藏字符会导致程序无法进行编译、运行。

Java严格区分大小写。

【源程序】HelloWorld.java 

public class HelloWorld
{
 //Java 程序的入口方法,程序将从这里开始执行
 public static void main (String[] args )
 {
  //向控制台打印一条语句
 System.out.println("Hello World!");
 }
}

用javac进行编译java程序。

【语法格式】:javac -d destdir srcFile

 -d destdir:指定本地磁盘上的一个有效路径。

srcFile:源文件所在位置。

注:此处的2个路径可以是绝对的也可以是相对的。

javac生成的目标文件名:以源文件所定义类的类名作为主文件名,以.class作为后缀名,

-d参数 不写时 其默认指定为当前位置。 

【编译结果】



 

【在EditPlus中配置工具把javac集成进来】


Tools->Configure User tools ->Group Name中编写(编译运行Java)

Add tools中编写

Menu text:编译java程序

Command:javac

Argument:-d . $(FileName)

Initial:$(FileDir)

 


tools中增添了“编译Java程序”


【运行结果】

命令行 语法: java JAVA类名


类名与源文件名与class文件前缀是一致的。此处为【HelloWorld】

 

【在EditPlus中配置工具把java集成进来】


 

Tools->Configure User tools ->Group Name中选择(编译运行Java

Add tools中编写

Menu text:运行java程序

Command:java

Argument:$(FileNameNoExt)

Initial:$(FileDir)


编写HelloWorld.java(文件名需要和类名一致,有public,有且只有一个public):


【Ctrl+1】


【Ctrl+2】


【Java的CLASSPATH】 

1.5以上JDK版本完全可以不用设置这个环境变量。以上例子即使不设置也可以编译和运行。

CLASSPATH环境变量的作用:

”java  java类名“运行java程序时。JRE在CLASSPATH环境变量指定的路径中搜索java类。

CLASSPATH环境变量中指定:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

(%JAVA_HOME%代表JDK的安装目录)

 

后来的JRE会自动搜索当前路径下的类文件,使用java和javac时,系统可自动加载 dt.jar 和 tools.jar文件中的Java类

 

如果想在Java程序运行时临时指定JRE搜索类的路径,则可以使用-classpath选项,即按如下格式来运行java命令。

java-classpathdir1;dir2;dir3...;dirN  Java类

java  -classpath%CLASSPATH%;.;dir1;dir2;dir3...;dirN Java类

%CLASSPATH%;来引用环境变量CLASSPATH的值,并在 -classpath中添加了一点,可在当前路径下搜索Java类。

 

【Java程序必须满足的基本规则】

Java程序是一种纯粹的面向对象的程序设计语言,必须以类的形式存在。

Class是Java的最小程序单位。所有程序必须放在类里。

 

【最简单的Java程序】

class Test

{

}

这是一个最简单的Java程序


Java解释器规定:如果某个类能被解释器直接解释执行,这个类里必须包含main方法,而且main方法必须使用public static void来修饰,且main方法的形参必须是字符串数组类型(String[] args是字符串数组的形式)。main方法是程序的入口。

 

【Java源文件命名规则】

①、后缀.java

②、通常情况下,Java程序源文件名可以任意。但有一种情况例外。

Java程序源代码里定义了一个public类,该源文件名必须与该public类的类名一致。即一个java源文件里最多只能定义一个public类。

【程序解释】

public static void main(string[] args)

以上程序入口固定不变。其中public和static可以互换

 

System.out.print(需要输出的内容);

System.out.println(需要输出的内容);

想控制台输出内容,前者在输出结束之后不会换行,后者在输出之后会换行。

【垃圾回收机制】

java语言不需要程序员直接控制内存回收,java程序的内存分配和回收都是由JRE在后台自动运行。

java的堆内存是一个运行时数据区,用于保存类的实例(对象)

JRE会提供一个后台线程来进行检测和控制,一般都是在CPU空闲或者内存不足时自动进行垃圾回收,程序员不可预期。这种机制为垃圾回收机制(Garbage Collection,GC)。

该机制优点

1.提高编程效率。2.保护程序的完整性,垃圾回收是java语言安全策略的一个重要部分。

缺点

开销影响程序性能。

1.跟踪有用对象才能确认无用对象,并释放无用对象,需要花费处理器时间。

2.垃圾回收算法不完备,随着算法改进,软硬件效率提升,问题都可以迎刃而解。

特点

回收JVM堆里无用对象的内存空间。(对物理资源无能为力)

【关于IDE工具】

对于初学者而言,不要使用任何IDE工具来学习Java编程,我学习的是Java语言,不是任何工具。

 

【工欲善其事,必先利其器】

                                            ----学习笔记