Java开发中常用到环境变量的配置,下面简单介绍下Java中经常配置的环境变量:PATH和CLASSPATH。...环境变量 2.1 作用简介 和PATH变量不同,CLASSPATH环境变量的作用是指定Java类所在的目录(或许它的意思就是PATH of Class)。...下面看下此时环境中CLASSPATH环境变量的值是什么: c:\test>echo %CLASSPATH% C:\Program Files\Java\jdk1.8.0_51\lib\tools.jar...下面的例子中,在指定-classpath选项的参数时,引用了%CLASSPATH%环境变量: c:\test>java -classpath ....,那么缺省的%CLASSPATH%环境变量的值是.
CLASSPATH 编译、运行Java程序时,JRE会去该变量指定的路径中搜索所需的类(.class)文件,很多配置教程都让我们设置CLASSPATH环境变量为:....当然,使用JDK 1.5以上的版本也可以在属性配置CLASSPATH环境变量,一旦设置了该变量,JRE就会按照该变量指定的路径搜索Java类(如果CLASSPATH中不包括当前路径....也就是说,使用了-classpath选项后,JRE将严格按-classpath指定的路径来搜索Java类。如果想使CLASSPATH环境变量指定的路径还生效,可以按下面的格式来运行Java程序。...java -classpath %CLASSPATH%;.;dir 类名 小结: 1、 path环境变量是先在当前目录找执行程序,如果没有,再到path指定目录中去寻找。...而classpath是先在classpath环境变量中去找执行程序,找到了,即使当前目录中有同样的执行程序也执行不到;且只要在classpath的值后面加了英文句号才会当前目录中来寻找执行程序。
CLASSPATH是个啥 CLASSPATH直译过来是类路径,是Java环境配置中要设置的一个环境变量,就是.class文件的路径,表示JVM从哪里去寻找要运行的class文件,CLASSPATH...CLASSPATH能干啥 在java5之前CLASSPATH没有默认值,如果想要使用当前路径作为类路径的话,可以使用“.”,用“.”表示当前路径;若CLASSPATH=....CLASSPATH 怎么配置 从Java5开始CLASSPATH默认就是当前路径,一般情况下就不需要再设定了。若使用Java5以前的版本,需要设置环境变量CLASSPATH为: CLASSPATH ....所以从Java5开始,就不必再设置CLASSPATH环境变量了。...网上有很多的教程在安装java时都会要求设置CLASSPATH环境变量,所以在这里纠正下,java 5 以及以后的java版本都不需要再设置了。
源地址:http://www.21jn.net/html/72/n-272.html Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。...设置方法: JAVA_HOME=C:\jdk1.5.0_06 PATH 环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了...设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME...CLASSPATH 环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。 CLASSPATH=....为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。
classpath和classpath*区别: classpath:只会到你的class路径中查找找文件。...classpath*的使用: 当项目中有多个classpath路径,并同时加载多个classpath路径下(此种情况多数不会遇到)的文件,*就发挥了作用,如果不加*,则表示仅仅加载第一个classpath...classpath中加载,而 后者会从所有的classpath中加载。...5、在多个classpath中存在同名资源,都需要加载时,那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前缀。...5、classpath 和 classpath* 区别: classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找
* 和 classpath到底有啥区别呢?...到这里可能有的同学会说为啥 可以用classpath*呢?...原因请看下面 classpath* 和 classpath的区别: classpath* 它会搜索所有的 classpath,找到所有符合条件的文件,包括当前项目依赖的jar文件中的配置文件。...而classpath不会到当前项目依赖的jar文件中去寻找。 classpath* 存在可移植性问题,遇到问题时,应该使用classpath。...一般情况下我们根本没有必要去使用classpath*,直接使用classpath就好了。
大纲 一、classpath属性作用 classpath属性作用 在日常的开发中或者初学者中,都是直接使用工具进行Java的开发或学习,如eclipse,idea、myeclipse这类的开发工具...classpath只得是类加载时的路径,当我们通过java 类名称来执行一个java类时,此时就启动了Java虚拟机来解释所需要执行的*.class文件,Java虚拟机是通过classpath属性配置的路径来找到所需要解释的...*.class文件的,默认情况下,classpath都表示当前目录,比如当前目录在D盘,那么classpath就是表示此时在D盘,不会在C盘,E盘。...这个是因为classpath默认为当前目录,那么此时在D盘,当前目录下并没有Demo.class的这个文件,所以当JVM通过classpath路径来找到要加载的class文件时,就找不到此文件。...因为我的Demo.class文件是在E:\editplus-worspace-java这个目录下,这里我通过设置classpath所在的路径来解决; 命令:set classpath=e:\editplus-workspace-java
最近在使用以前写过的代码生成器(从表名可生成所有的代码)的时候,发现生成的文件都在classpath目录下,所有的文件都得自己拷到工程目录下,于是,想优化一下,取得classpath目录以外的路径,很简单...,使用getCanonicalPath,如下 String classpath = Thread.currentThread().getContextClassLoader().getResource(..."").getPath(); String mypath = new File(classpath,"../../").getCanonicalPath(); "../..
1、src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。...3、引用classpath路径下的文件,只需在文件名前加classpath: classpath:applicationContext-*.xml...-- 引用其子目录下的文件,如 --> classpath:context/conf/controller.xml 4、lib和classes同属classpath...5、classpath 和 classpath* 区别: classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找
一、虚拟机加载类的时候的规则如下 1、当没有设置classpath的时候,虚拟机直接在当前路径下载加载classpath。 ...2、当设置了classpath以后,如果设置的classpath是以";"结尾的,那么虚拟机按照设置的路径从前向后地寻找,如果都 没有到,会在当前路径下寻找;如果设置的classpath...二、classpath对应的Dos命令 1、查看classpath环境变量:set classpath 2、取消classpath环境变量的定义:set classpath...= 3、将classpath环境变量设置为某值:set classpath=xxxxxxxxxxxxxxxxxxxx(;) 三、path这个环境变量的规则是:先从当前路径下寻找,如果找不到才会到
2.ClassPath的作用 ClassPath用来指定在程序中使用的类文件所在的文件夹,也就是说当我们运行Java程序的时候。...当我们运行这个程序的时候就会自己主动到ClassPath文件夹以下去找java.util.Scanner相应的jar包。 简单来说。ClassPath就是给JVM使用的。
classpath: 和 classpath*: 区别: classpath: 只会到你的class路径中查找文件。...注意: 用 classpath*: 需要遍历所有的classpath,所以加载速度是很慢的;因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*:。 ...classpath*的使用: 当项目中有多个classpath路径,并同时加载多个classpath路径下(此种情况多数不会遇到)的文件,*就发挥了作用,如果不加*,则表示仅仅加载第一个classpath...classpath中加载,而 后者会从所有的classpath中加载。 ...4、在多个classpath中存在同名资源,都需要加载时,那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前缀。
Java中的classpath classpath,顾名思义即java源代码编译后的字节码文件*.class的寻址路径。你需要将字节码文件放到公用目录下,否则java程序将无法搜索到相应的执行类。...我们可以设置classpath,使其包含所需文件的目录和jar文件或zip文件。...java运行时将会利用classpath查找执行类,会遍历classpath所包含的每一个路径,直到找到相应的文件为止。...java -classpath 可以再命令行设置classpath: C:\ java -classpath C:\yy\classes HelloWorld 运行时,可以监控到该java程序打开了以下文件...javac -d 将类文件加到classpath目录中,可以使用javac的一个命令-d选项,用来指定便以输出的目录。
在文章《Spark Submit的ClassPath问题》中,我探讨了针对spark-submit的Jar包,如何指定外部依赖的Jar包。同样的问题在本地部署时仍然存在。...通过查看java命令的帮助文档,我最初以为通过设置-classpath参数来指定外部依赖包就可以轻松解决。然而事情的发展并非我所愿,运行时仍然报告找不到第三方Jar包中相关类的错误。...查阅文档,发现: 当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJar.jar的内部class作为类的寻找范围。...一个解决方案是使用-Xbootclasspath参数,注意需要添加/a,从而保证该参数设置的classpath放在核心class搜索路径后。...thirdparty_jars/customer_provided.jar: -jar $MORT_HOME/target/mort.jar > $MORT_HOME/mort_console.log 2>&1 注意,若有多个classpath
同时,还需要在classpath中提供密钥的key文件。 从需求看,这个集成并不复杂,且客户也提供了较翔实的接口文档与示例案例,开发工作量非常小。...然而事与愿违,当我们将真正的jar包放在本地的classpath中时,运行时却找不到这个jar包。问题出现在哪里?...这就是在本地设置classpath不生效的根本原因。...客户的文档说明,需要将该文件(不是jar文件)放到运行的classpath中。...解决办法如前,仍然不能直接将key文件放入到本地的classpath中,而是利用spark-submit的--files参数。
2) 第二个不同点就是,设置PATH你需要在PATH环境变量中包含JDK_HOME/bin目录,然而设置CLASSPATH我们则需要包含我们的java application中必须用到的.class文件或者...但CLASSPATH则可以被覆盖(override),我们可以通过命令行的方式,我们可以在"java" 和 “javac"的命令中加上-classpath 或 -cp 来重新设置,或者也可以在JAR包中的...然而CLASSPATH仅仅是被ClassLoader用来加载class files的。 如何在Windows 和 Unix中设置PATH 和 CLASSPATH?...在Windows上设置CLASSPATH的命令: set CLASSPATH=%CLASSPATH%;C:\Program Files\Java\JDK1.6.20\lib 在UNIX/Linux上设置...CLASSPATH的命令: export CLASSPATH= ${CLASSPATH}:/opt/Java/JDK1.6.18/lib
classpath。...User classes 开发人员或其他第三方开发的Java程序包.通过命令行的-classpath或-cp,或者通过设置CLASSPATH环境变量来引用.JVM通过放置在{java_home}\lib...,是开发的class所存在的当前目录 3.2 CLASSPATH环境变量设置的路径.如果设置了CLASSPATH,则CLASSPATH的值会覆盖缺省值 3.3 执行Java的命令行-classpath或...-cp的值,如果制定了这两个命令行参数之一,它的值会覆盖环境变量CLASSPATH的值 3.4 -jar 选项:如果通过java -jar 来运行一个可执行的jar包,这当前jar包会覆盖上面所有的值....换句话说,-jar 后面所跟的jar包的优先级别最高,如果指定了-jar选项,所有环境变量和命令行制定的搜索路径都将被忽略.JVM APPClassloader将只会以jar包为搜索范围.
tools.jar是工具类库,它在编译和运行一个类时被使用 当我们配置classpath后,系统会根据我们所配置的classpath加载类 例如:在我们使用javac命令编译程序时,系统加载tools.jar...一些使用Java虚拟机(JVM)的第三方应用程序可以修改类路径环境变量,以包含它们使用的库。这样的设置可以保留。...在调用JVM或其他JDK工具时,可以使用一些Java命令的-classpath或-cp选项,或者使用CLASSPATH环境变量,来更改类路径。参见JDK命令类路径选项。...使用-classpath选项优于设置CLASSPATH环境变量,因为您可以为每个应用程序单独设置它,而不影响其他应用程序,也不需要其他应用程序修改它的值。参见CLASSPATH环境变量。...,更推荐使用-classpath选项 总结: 在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!
我们不再需要配置classpath了!...一些使用Java虚拟机(JVM)的第三方应用程序可以修改类路径环境变量,以包含它们使用的库。这样的设置可以保留。...在调用JVM或其他JDK工具时,可以使用一些Java命令的-classpath或-cp选项,或者使用CLASSPATH环境变量,来更改类路径。参见JDK命令类路径选项。...使用-classpath选项优于设置CLASSPATH环境变量,因为您可以为每个应用程序单独设置它,而不影响其他应用程序,也不需要其他应用程序修改它的值。参见CLASSPATH环境变量。...总结: 在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!
领取专属 10元无门槛券
手把手带您无忧上云