java配置环境变量classpath的时候,为啥要加上当前目录而配置path的时候为啥又不加了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java配置环境变量classpath的时候,为啥要加上当前目录而配置path的时候为啥又不加了相关的知识,希望对你有一定的参考价值。

谢谢,希望答的详细点

顾名思义

classpath 是说找class类的地方 加上读取不目录才能找到
而Path 不是找class类 而是找应用程序的地方

比如开始运行cmd javac 这个时候就是去找PATH 如果PATH下没有javac.exe那就会报错。

当你执行 java abcdefg 的时候 java.exe就会去找classpath设置的目录下有没有abcdefg.class文件 找不到就会报错
参考技术A 这个是告诉JDK,搜索CLASS 时先查找当前目录的class 文件。这是由于LINUX 的安全机制引起的~

为啥我的环境变量里面找不到classpath?

参考技术A

环境变量里面找不到classpath,那就是没有定义classpath,可以自己创建一个classpath;java编程的话有一个path路径就可以,classpath是使用tomcat服务器的时候才需要用到。

Classpath设置的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。

Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序(后面会介绍到Java程序编译完成之后,会以.class文件存在)。如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统找到指定的工具程序(以Windows来说就是找到.exe文件),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(也就是.class文件)。

因为电脑系统将根据该变量的值找到java编程中需要的一些程序,比如javac.exe、java.exe、javah.exe等等,其中javac.exe程序是用于编译java源代码,java.exe程序是用于执行后缀为class的代码

classpath 不是必须配置的。假如在D盘下有个test.java文件。进到d盘后,javac test.java 那么会在当前生成test.class文件。所以java test.class会得到相应的结果。如果设置了classpath是D:/myclasspath,将test.class剪切到D:/myclasspath中,在d路径下执行java test 照样可以得到结果

以上是关于java配置环境变量classpath的时候,为啥要加上当前目录而配置path的时候为啥又不加了的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的环境变量里面找不到classpath?

java_home环境变量配置的问题?

配置java环境变量时求解下面为啥Path编辑命令是灰色的,配置环境变量的时候要用那个吧?

java开发中 为啥有些包放在lib文件夹中就行 而有些包要配置到classpath环境变量中去?

java 在配置环境变量的时候在classpath的指定路径后加一个“.”,表示当前路径也是class文件目录。

Java的classpath