首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

javac和java命令行中的-classpath选项

javac和java命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点 先来看几个小例子: 一、测试java命令中的...思考: 1、 为什么java命令会找到当前目录下的com/cn/andy/Hello.class文件? 因为当前环境变量的classpath属性设置为 ....;去掉则无法执行,此时如果执行java -classpath . com.cn.andy.Hello 则还可以正常执行 2、 同样,如果将d:/test1/target目录设置进classpath环境变量中...6、 执行javac -classpath d:/test1/src -d d:/test1/target Hello2.java编译成功 (1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类...(CLASSPATH是用来指定.class路径的,不是用来指定.java文件的路径的)

7.8K40
您找到你想要的搜索结果了吗?
是的
没有找到

Java classpath调用规则

一、虚拟机加载类的时候的规则如下         1、当没有设置classpath的时候,虚拟机直接在当前路径下载加载classpath。        ...2、当设置了classpath以后,如果设置的classpath是以";"结尾的,那么虚拟机按照设置的路径从前向后地寻找,如果都              没有到,会在当前路径下寻找;如果设置的classpath...二、classpath对应的Dos命令         1、查看classpath环境变量:set classpath         2、取消classpath环境变量的定义:set classpath...=         3、将classpath环境变量设置为某值:set classpath=xxxxxxxxxxxxxxxxxxxx(;) 三、path这个环境变量的规则是:先从当前路径下寻找,如果找不到才会到

79940

Java中的classpath

Java中的classpath classpath,顾名思义即java源代码编译后的字节码文件*.class的寻址路径。你需要将字节码文件放到公用目录下,否则java程序将无法搜索到相应的执行类。...我们可以设置classpath,使其包含所需文件的目录和jar文件或zip文件。...java运行时将会利用classpath查找执行类,会遍历classpath所包含的每一个路径,直到找到相应的文件为止。...java -classpath 可以再命令行设置classpath: C:\ java -classpath C:\yy\classes HelloWorld 运行时,可以监控到该java程序打开了以下文件...例如将HelloWorld的类文件放置到C:\yy\classes中: javac -d C:\yy\classes HelloWorld.java 只要该目录在classpath中,那么不管该目录是什么

82610

JavaClassPath问题

在文章《Spark Submit的ClassPath问题》中,我探讨了针对spark-submit的Jar包,如何指定外部依赖的Jar包。同样的问题在本地部署时仍然存在。...此时,运行Jar并不是通过spark-submit,而是通过java命令,例如: exec java -Xmx2000m -DMORT_HOME=$MORT_HOME -Ddata-set-parquet.path...通过查看java命令的帮助文档,我最初以为通过设置-classpath参数来指定外部依赖包就可以轻松解决。然而事情的发展并非我所愿,运行时仍然报告找不到第三方Jar包中相关类的错误。...查阅文档,发现: 当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJar.jar的内部class作为类的寻找范围。...一个解决方案是使用-Xbootclasspath参数,注意需要添加/a,从而保证该参数设置的classpath放在核心class搜索路径后。

1.4K70

java -jar 启动程序设置classpath

java虚拟机系统参数java.ext.dirs。 classpath:对应 AppClassLoader。java虚拟机系统参数java.class.path。...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包为搜索范围.

2.6K20

JAVAJava基础之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版本都不需要再设置了。

11.9K41

Java开发环境不再需要配置classpath

Java开发环境不再需要配置classpath java入门请不要放弃.png 前言: 之前发布了关于java开发环境配置的文章,经过与网友的交流,我了解到在jdk1.5以后,java开发环境配置的时候...其实就封装了下面这样一条命令 javac XXX.java java -Classpath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java 当然tools...在调用JVM或其他JDK工具时,可以使用一些Java命令的-classpath或-cp选项,或者使用CLASSPATH环境变量,来更改类路径。参见JDK命令类路径选项。...通过官方的文档说明我们可以看到,rt.jar和tool.jar这两种属于java平台自身的包就不需要添加到classpath中,只有一些第三方类或者自定义类需要,也并不推荐使用配置CLASSPATH的方法...,更推荐使用-classpath选项 总结: 在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!

1.4K50

Java 开发环境不再需要配置 classpath

前言 之前发布了关于java开发环境配置的文章,经过与网友的交流,我了解到在jdk1.5以后,java开发环境配置的时候,确实不需要对classpath进行配置,但市面上的书籍,以及一些博客、还是老一套...其实就封装了下面这样一条命令 javac XXX.java java -Classpath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java 当然tools的功能可不止这一点...在调用JVM或其他JDK工具时,可以使用一些Java命令的-classpath或-cp选项,或者使用CLASSPATH环境变量,来更改类路径。参见JDK命令类路径选项。...通过官方的文档说明我们可以看到,rt.jar和tool.jar这两种属于java平台自身的包就不需要添加到classpath中,只有一些第三方类或者自定义类需要,也并不推荐使用配置CLASSPATH的方法...总结: 在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!

1.8K10

什么是classpath

大纲      一、classpath属性作用 classpath属性作用 在日常的开发中或者初学者中,都是直接使用工具进行Java的开发或学习,如eclipse,idea、myeclipse这类的开发工具...classpath只得是类加载时的路径,当我们通过java 类名称来执行一个java类时,此时就启动了Java虚拟机来解释所需要执行的*.class文件,Java虚拟机是通过classpath属性配置的路径来找到所需要解释的...范例:  此时我在E盘下面建立了一个Demo.java的文件,通过命令终端进入到相应的目录,可以看到建立好的java文件。  ...因为我的Demo.class文件是在E:\editplus-worspace-java这个目录下,这里我通过设置classpath所在的路径来解决; 命令:set classpath=e:\editplus-workspace-java...设置好classpath的路径之后,此时我在D盘,通过java 命令来解释文件时,就正常的加载所需要的class文件了。

77520

java classpath环境变量(linux配置java环境变量)

刚学Java的时候,很多jdk配置教程都要求设置JAVA_HOME、Path、CLASSPATH3个变量。而Java官网有这么一句话:jdk1.5之后的版本在安装时不用设置CLASSPATH变量。...CLASSPATH 编译、运行Java程序时,JRE会去该变量指定的路径中搜索所需的类(.class)文件,很多配置教程都让我们设置CLASSPATH环境变量为:....解决方法是(1)将当前目录的子目录用set命令临时添加到CLASSPATH中(只在当前窗口生效),这时就可以运行了: (2)此外想在运行Java程序时临时指定JRE搜索Java类的路径,也可以使用-classpath...也就是说,使用了-classpath选项后,JRE将严格按-classpath指定的路径来搜索Java类。如果想使CLASSPATH环境变量指定的路径还生效,可以按下面的格式来运行Java程序。...java -classpath %CLASSPATH%;.;dir 类名 小结: 1、 path环境变量是先在当前目录找执行程序,如果没有,再到path指定目录中去寻找。

4.7K40

JAVAJAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

源地址:http://www.21jn.net/html/72/n-272.html Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。...,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) : PATH=%JAVA_HOME%\bin;%PATH%...CLASSPATH 环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。 CLASSPATH=....;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 首先要注意的是最前面的".;",如果你看不清,我给你念念——句点分号。...为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。

1.7K10

Java主函数解释、javajavac命令解释、classpath解释

让编译器做事:   javac是java对外提供的一个命令,他的底层对应着一整套java编译程序,其实就是用这个命令启动了一个编译程序,编译.java文件,就是对java的原文件进行检查,检查原代码的正确性...让虚拟机做事:   java的底层对应的程序是:虚拟机,启动虚拟机帮我运行一个类,即java Demo,是因为运行环境中才包含虚拟机。   ...运行文件(即类文件)在哪,我就去哪运行,即Demo.class在哪,我就去哪使用命令 java Demo 运行它。 classpath的作用是:可以在任意目录下都能运行java程序。...但是:有另一种方法:     即classpath是在规定虚拟机该到什么地方去执行java运行程序。     ...若没有配置classpath环境变量时,虚拟机就在该当前目录上查找要运行的类文件,若没有找着就报错。     若配置的话,虚拟机就在你配置的目录下查找要运行的类文件。

1.5K10

java项目中的classpath到底指向的哪里

具体classpath文件的介绍可以参考下面博客 .classpath文件详解 .classpath文件用于记录项目编译环境的所有信息,包括:源文件路径、编译后class文件存放路径...如果把该文件删除,则eclipse不能讲该工程识别为一个正常的java工程,仅仅当做普通的文件夹而导致不能正常运行。...也就是说你想知道classpath可以引用哪里的文件,点开.classpath 看看kind=”src” 的就知道了 2、在编译生成的项目下的bulid/classes/ 下具有的文件都是classpath...路径下的文件,都可以通过classpath:方法获取。...(classes:指的是编译后的文件) 3、”src不是classpath, WEB-INF/classes,lib才是classpath”这句话也会不对的,这是编写项目时看到的,真正的classpath

77120
领券