“Java SE 8u101 includes important security fixes. Oracle strongly recommends that all Java SE 8 users upgrade to this release. Java SE 8u102 is a patch-set update, including all of 8u101 plus additional features (described in the release notes). ”
注意:这里报错的原因并不是说直接指定java.exe的路径名这种方式有问题,而是命令行下无法解析带有空格的路径名,所以需要用到双引号,如下:
C:\Users\weizierxu>"F:\Program Files"\Java\jdk1.8.0_101\bin\java.exe -versionjava version "1.8.0_101"Java(TM) SE Runtime Environment (build 1.8.0_101-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
1
2
3
4
1.3.3 CLASSPATH CLASSPATH是在Java执行一个已经编译好的class文件时,告诉Java去哪些目录下找到这个class文件,比如你的程序里用到某个Jar包(Jar包里的都是已经编译好的class文件),那么在执行的时候,Java需要找到这个Jar包才行,去哪找呢?从CLASSPATH指定的目录下,从左至右开始寻找(用分号区分开的那些路径名),直到找到你指定名字的class文件,如果找不到就会报错。这里做一个实验,就能明白具体是什么意思了。
首先,我在F:\Program Files\Java目录下,利用Windows自带的记事本写了一个类似于Hello World的程序,保存为testClassPath.java文件(注意后缀名得改成java),内容如下:
public class testClassPath{ public static void main(String[] args){ System.out.println("Hello, this is a test on CLASSPATH!"); }}
从上图中可以看到,javac命令可以正常使用(没有任何输出的就表明正确编译了),这是因为执行该命令的javac.exe同样存在于JDK安装路径下的bin目录中,而这个目录我们已经添加到Path系统变量中去了,所以cmd能够认识这个命令。这个时候可以看到F:\Program Files\Java目录下多了一个testClassPath.class文件。不过运行这个class文件的时候,报错了。这个时候,CLASSPATH就派上用场了,和1.2节中对Path系统变量设置的方法一样,这里在CLASSPATH(如果系统变量的列表中没有CLASSPATH这个选项,那么点击新建,然后添加路径即可)中最后面添加上;.,英文的分号表示和前面已有的路径分割开,后面的小点.表示当前目录的意思。
这个时候记得要另起一个新的cmd窗口,然后利用cd命令切换到testClassPath.class所在目录,然后再去执行,便可以成功得到结果了。
F:\Program Files\Java>java testClassPathHello, this is a test on CLASSPATH!