首页
学习
活动
专区
圈层
工具
发布

Java的ClassPath问题

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

1.6K70

Java中的classpath

Java中的classpath classpath,顾名思义即java源代码编译后的字节码文件*.class的寻址路径。你需要将字节码文件放到公用目录下,否则java程序将无法搜索到相应的执行类。...java运行时将会利用classpath查找执行类,会遍历classpath所包含的每一个路径,直到找到相应的文件为止。...: 一些在JDK目录中的文件 C:\yy\classes\HelloWorld.class文件 类似的在web容器中,web程序设置的classpath一般包括:WEB-INF/classes目录和WEB-INF...javac -d 将类文件加到classpath目录中,可以使用javac的一个命令-d选项,用来指定便以输出的目录。...例如将HelloWorld的类文件放置到C:\yy\classes中: javac -d C:\yy\classes HelloWorld.java 只要该目录在classpath中,那么不管该目录是什么

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    classpath* 和 classpath使用遇到的问题

    在spring配置mybatis的时候需要加载mybatis的多个相关配置文件,其中mybatis的mapper对应的xml通常放在其他的jar包中,mybatis-conf文件通常在当前工程中,so,...也就引出了今天遇到的问题,那么classpath* 和 classpath到底有啥区别呢?...错误的配置与看到的异常 配置文件中的配置,看上去没啥问题 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean...原因请看下面 classpath* 和 classpath的区别: classpath* 它会搜索所有的 classpath,找到所有符合条件的文件,包括当前项目依赖的jar文件中的配置文件。...而classpath不会到当前项目依赖的jar文件中去寻找。 classpath* 存在可移植性问题,遇到问题时,应该使用classpath。

    3.8K20

    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这个环境变量的规则是:先从当前路径下寻找,如果找不到才会到

    96840

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

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

    9.1K40

    web.xml 配置中 classpath: 与 classpath*: 的区别

    概念解释及使用场景:   classpath是指WEB-INF文件夹下的classes目录。   通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下代码: <?.../javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee...classpath: 和 classpath*: 区别:  classpath: 只会到你的class路径中查找文件。...【classpath:】只会在第一个加载的类路径下查找,如果没有,查找当前类路径下的jar文件中的配置文件,找到停止,否则继续找下个jar文件中的配置文件,直到找到,否则抛异常。...补充:   1、关于.classpath文件的查看可以去项目存放的位置(workplace)下查看,也可以在eclipse中Navigator视图中进行查看。

    1.7K20

    Python脚本中调用Java程序时Classpath错误

    问题背景一位用户正在使用Python脚本运行Java程序,由于脚本执行时间较长,他希望并行运行多个脚本。...解决方案为了解决此错误,用户可以执行以下步骤:确保Java类路径正确。用户需要确保Java类路径中包含Java程序所在的JAR文件和库文件。...在上面的代码示例中,Java类路径设置为"-cp 'lib/*:esalib.jar'" / public_html/clldsystem/esa/ESAAnalyzer %s %s"。...用户需要检查Java类路径是否正确,并确保JAR文件和库文件存在且可访问。确保Java程序的主类正确。用户需要确保在Java程序的主类中指定了正确的入口点。...此脚本将使用Java类路径中的JAR文件和库文件运行Java程序"clldsystem.esa.ESAAnalyzer"。Java程序的主类是"clldsystem.esa.ESAAnalyzer"。

    58210

    一篇文章搞定 java 中的 path 和 classpath

    2. classpath 2.1 classpath 的作用 jar 包的搜索路径,告诉应用程序去哪里寻找 class。默认为当前目录。在实际的应用时,一般不需要设置 classpath。...在 Test1 中引入第三方的依赖 kudu package test; import org.apache.kudu.client.KuduTable; import java.lang.ref.SoftReference...2.3 classpath的应用场景 打包是没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径) 要引用其他的jar包,可以用java -classpath $CLASSPATH:...首先必须要有必须的 jar ? 我们所依赖的 jar 也都被放进了 classpath ?...所以基本 jar 依赖的问题就解决了, 其次,我们需要正确的 class files 路径。 ? 设置了 build 后的路径为 ${PROJECT_ROOT}/target。 ?

    1.3K30

    classpath和classpath*的区别及classpath到底是什么

    概念解释及使用场景: classpath是指WEB-INF文件夹下的classes目录。 通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下: 的方法使用这种方式进行路径的读取。 classpath和classpath*区别:  classpath:只会到你的class路径中查找找文件。...classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。...2、WEB-INF/classes目录存放src目录java文件编译之后的class文件,xml、properties等资源配置文件,这是一个定位资源的入口。...5、classpath 和 classpath* 区别: classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找

    82040

    一篇文章搞定 java 中的 path 和 classpath

    如: 2. classpath 2.1 classpath 的作用 jar 包的搜索路径,告诉应用程序去哪里寻找 class。默认为当前目录。在实际的应用时,一般不需要设置 classpath。...Test1 { public static void main(String[] args) { Test2.main(args); } } 在 Test1 中引入第三方的依赖 kudu...的应用场景 打包是没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径) 要引用其他的jar包,可以用java -classpath $CLASSPATH:xxxx.jar 主类名称...首先必须要有必须的 jar 我们所依赖的 jar 也都被放进了 classpath 所以基本 jar 依赖的问题就解决了, 其次,我们需要正确的 class files 路径。...竟然可以不通过 java -jar 或者 java -cp 主方法 的方式来执行( 其实是通过 java -cp 主方法 的方式来执行的)。

    91510

    java -jar 启动程序设置classpath

    Class-Path的属性中的jar会被加载。 java -jar 启动程序时,设置classpath的方法 方法1:修改 bootclasspath 此种方法可以添加少量的jar文件。...其替代方法是,在JAR中的META-INF\MANIFEST.MF文件里设置Class-Path。 推荐此法:在JAR中的META-INF\MANIFEST.MF文件里设置Class-Path。...替换掉JAR中的MANIFEST.MF。 尽量选择个靠谱的压缩包操作软件,比如winrar。...\tools.jar来寻找和调用用户级的class.常用的javac也是通过调用tools.jar来寻找用户指定的路径来编译Java源程序.这样就引出了User class路径搜索的顺序或优先级别的问题...,是开发的class所存在的当前目录 3.2 CLASSPATH环境变量设置的路径.如果设置了CLASSPATH,则CLASSPATH的值会覆盖缺省值 3.3 执行Java的命令行-classpath或

    3.6K20

    「JAVA」 Java基础之CLASSPATH环境变量

    CLASSPATH是个啥 CLASSPATH直译过来是类路径,是Java环境配置中要设置的一个环境变量,就是.class文件的路径,表示JVM从哪里去寻找要运行的class文件,CLASSPATH...CLASSPATH 怎么配置 从Java5开始CLASSPATH默认就是当前路径,一般情况下就不需要再设定了。若使用Java5以前的版本,需要设置环境变量CLASSPATH为: CLASSPATH ....;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 其中dt.jar是关于java运行环境的类库;tools.jar是工具类库; 在java5中,sun...网上有很多的教程在安装java时都会要求设置CLASSPATH环境变量,所以在这里纠正下,java 5 以及以后的java版本都不需要再设置了。...CLASSPATH 实战 先使用javac -d D:\classes Hello.java将Hello.java编译到D:\classes目录下,编译成功后的文件为Hello.class; 然后再使用

    14.3K41

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

    从第一张图和第二张图,使用classpath访问到了src路径下面的main/resources文件中的配置文件 打开编译后的项目,发现项目文件中有一个文件名为.classpath的文件,点开看了一下...如果把该文件删除,则eclipse不能讲该工程识别为一个正常的java工程,仅仅当做普通的文件夹而导致不能正常运行。...并没有出现 此时我们将.classpath文件中添加 classpathentry kind=”src” path=”WebContent/WEB-INF”/ 再次启动本项目 打开项目的原始路径下...,发现applicationcontext.xml出现在了WebContent/WEB-INF下面 由此可以总结: 1、在编译时生成的文件.classpath 中kind=”src” 的类型为classpath...(classes:指的是编译后的文件) 3、”src不是classpath, WEB-INF/classes,lib才是classpath”这句话也会不对的,这是编写项目时看到的,真正的classpath

    1.7K20

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

    Java开发环境不再需要配置classpath java入门请不要放弃.png 前言: 之前发布了关于java开发环境配置的文章,经过与网友的交流,我了解到在jdk1.5以后,java开发环境配置的时候...在JDK1.5以后,classpath并不是必须配置了,在JDK1.5之前,是没有办法在当前目录下加载类的(找不到 JDK目录下lib文件夹中的.jar文件),所以我们需要通过配置classpath,但...在调用JVM或其他JDK工具时,可以使用一些Java命令的-classpath或-cp选项,或者使用CLASSPATH环境变量,来更改类路径。参见JDK命令类路径选项。...通过官方的文档说明我们可以看到,rt.jar和tool.jar这两种属于java平台自身的包就不需要添加到classpath中,只有一些第三方类或者自定义类需要,也并不推荐使用配置CLASSPATH的方法...,更推荐使用-classpath选项 总结: 在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!

    1.9K50
    领券