Java文件在系统的运作过程
1.首先调用JDK工具包中bin目录下的javac.exe去对后缀为.java的文件进行编译
2.然后编译得到后缀为.class的字节码文件
3.最后通过JDK工具包中bin目录下的java.exe去运行
没有在系统配置Java的环境变量
D:\untitled3>D:\java\jdk-12.0.1\bin\javac HelloWorld.java
要告诉系统javac.exe的绝对路径才能对HelloWorld.java文件去进行编译
D:\untitled3>D:\java\jdk-12.0.1\bin\java HelloWorld
同样也要告诉系统java.exe的绝对路径才能对编译后的HelloWorld.class文件去进行运行
由于每次都得输入全路径很不方便,我们可以在系统的环境变量去配置Java的环境
//在系统的环境变量添加一个新的JAVA_HOME环境名,值为以下路径
D:\java\jdk-12.0.1
//在系统的Path环境添加,与其他的环境用;隔开
%JAVA_HOME%\bin
这样系统每次都能通过配置好的系统环境变量去找到在JDK工具包中bin目录下的javac.exe和java.exe
对于CLASSPATH环境变量的解释
//如果我们当前路径目录下没有所要运行的类文件就会报以下错误
D:\>java HelloWorld
错误: 找不到或无法加载主类 HelloWorld
原因: java.lang.ClassNotFoundException: HelloWorld
//这样可以运行处出来,但很麻烦
D:\>java -classpath D:\untitled3 HelloWorld
Hello World
对于要在所有的路径下都可以运行类文件,可以在系统环境变量配置CLASSPATH环境变量,CLASSPATH环境变量会告诉系统所要运行的类文件的路径
//如果系统环境变量没用CLASSPATH这个变量名就自己添加一个,值为你要运行的类文件的目录,我的HelloWorld.class文件在D:\untitled3目录下
D:\untitled3
//然后我们即使在c盘下都可以运行HelloWorld.class文件(c盘的根目录可没有这个文件我们照样可以运行)
C:\>java HelloWorld
Hello World
我们实际的应用中并不会这样每次都指出所要运行的类去配置CLASSPATH环境变量,而是下面这样配置CLASSPATH的变量值
%JAVA_HOME%\lib\dt.jar
//运行环境类库,主要是Swing包,这一点通过用压缩软件打开dt.jar也可以看到。如果在开发时候没有用到Swing包,那么可以不用将dt.jar添加到CLASSPATH变量中。
%JAVA_HOME%\lib\tools.jar
//工具类库(编译和运行等),它跟我们程序中用到的基础类库没有关系。我们注意到在Path中变量值bin目录下的各个exe工具的大小都很小,一般都在27KB左右,这是因为它们实际上仅仅相当于是一层代码的包装,这些工具的实现所要用到的类库都在tools.jar中,用压缩软件打开tools.jar,你会发现有很多文件是和bin目录下的exe工具相对性的。当然,如果tools.jar的功能只有这些的话,那么我们根本不用把它加入到CLASSPATH变量中,因为bin目录下的工具自己可以完成对这些类库的调用,因此tools.jar应该还有其他的功能。在里面还可以看到有Applet和RMI等相关的文件,因此tools.jar应该还是远程调用等必须的jar包。tools.jar的其他作用可以查看其他资料。
.
//代表当前路径