最近设置安装java环境变量到差点怀疑人生了,就是一个标点符号“.”没加的问题,帧是。。。
查了很多资料,说是CLASSPATH设置\dt.jar 和 \tools.jar 路径(编译运行java程序需要在JDK路径的lib文件夹中的这两个.jar文件里面的java类)的时候,加“.”的原因是“.”代表当前路径,用以强制Java解释器在当前路径搜索Java类。)
但其实JDK在1.4以前版本都是需要设置CLASSPATH环境变量的,后来Sun改进了JDK的设计,JRE会自动搜索当前路径下的类文件,而且使用Java编译和运行工具时,系统可以自动加载dt.jar和tools.jar文件中的java类,因此可以不需要设置CLASSPATH了。
如果你闲的无聊,也想设置CLASSPATH环境变量,则JRE会按该环境变量指定的路径来搜索java类(JRE中的JVM要寻找字节码文件,也就是.class类文件)。这也就意味着,如果CLASSPATH环境变量中不包括一点".",也就是没有包含当前路径,JRE不会在当前路径搜索java类。
在设置环境变量会出现用户变量和系统变量两个概念。它们并没有太大的差别。只是用户变量只对当前的用户有效,而系统变量对所有用户有效。而如果Path系统变量和PATH用户变量都同时含有了java命令的路径,此时会优先执行Path系统变量路径里面包含的java命令。
注意:Windows操作系统会根据Path环境变量来查找命令。如果查找不到,则会显示“XXX 不是内部或外部命令,也不是可运行的程序或批处理文件”。因为windows不区分大小写,所以设置PATH和Path是一样的。
最近在玩cmd窗口使用命令java或javac编译Java文件。
发现了一个很有意思的现象:
比如我的一个array.java文件路径是:D:\eclipse workplace\myjava\src\myjava\array.java
现在假设D:\eclipse workplace\myjava\src\myjava文件夹中只有.java文件;
现在在cmd窗口下运行java文件。
下面如图进入每层文件夹:
最后的命令行: javac array.java 运行后
在D:\eclipse workplace\myjava\src\myjava 文件夹中就出现了array.class类文件
此时再运行 : java array 则会出现问题,编译不了 array.java源文件
那么如何编译array.java源文件呢?
此时应该退出最后的myjava文件夹,进入前一层文件夹src
再输入: java myjava.array就可以编译了。
如果D:\eclipse workplace\myjava\src\myjava下只有.java文件,然后直接在src文件夹中java myjava.array是会报错的,因为还没有.class文件。