【如何搭建Java开发环境】
【简介】
JDK的全称是 Java Development Kit,即Java标准版开发包。Sun公司提供的一套用于开发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 -classpath dir1;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语言,不是任何工具。
【工欲善其事,必先利其器】
----学习笔记
原文地址:https://www.cnblogs.com/liaolu/p/9240164.html