【Java】classpath

classpath的作用在于让虚拟机找到运行所需的class。

那么classpath是在哪定义的?

可能会遇到这样的问题。
我用不同方式执行下面一行打印classpath的代码,结果可能不同。
System.out.println(System.getProperty("java.class.path"));
不同方式是指在idea里直接run和打成jar包使用java -jar的方式run。

为什么?
那是因为不同的环境会指定自己的classpath。
比如说如果我们直接用java -jar的方式运行,那么classpath就是系统里设置的CLASSPATH环境变量或者我们通过-cp参数指定路径;
如果我们在idea或者eclipse运行,这些ide内部有设置classpath的机制,那么classpath就是ide来设置的。当然我猜测还是通过-cp的方式。很明显,idea里面会把maven的本地仓库目录路径加入到classpath。
再比如,web容器想tomcat这种,也会把项目的WEB/INF目录下的classes和lib目录加入到本项目的classpath。

所以,我们用不同的方式或者在不同的环境下拿到的classpath其实是不一样的。

https://stackoverflow.com/questions/1821571/classpath-java-buld-path-eclipse-and-web-inf-lib-what-to-use-when-and-wh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值