您好,欢迎来到赴品旅游。
搜索
您的当前位置:首页说一下Java里面的路径问题,CLASSPATH和SOURCEPATH

说一下Java里面的路径问题,CLASSPATH和SOURCEPATH

来源:赴品旅游


说一下Java里面的路径问题,CLASSPATH和SOURCEPATH

java的路径让许多人,特别是初学者感到迷惑,我这里再解释一下。我们分2个阶段,1是编译阶段,2是运行阶段。

一、编译阶段

这个时候,我们要提供给编译器的有2个路径参数,第一个是源代码在哪里?也就是 sourcepath,第二个就是依赖的类在哪里?也就是 classpath

我们看一个例子

d:\emp\\TestCP\\d1\\p1\\Class1.java

view plaincopy to clipboardprint?

package p1;

public class Class1 {

public void show(){

System.out.println(\"Class1\");

}

}

package p1;

public class Class1 {

public void show(){

System.out.println(\"Class1\");

}

}

d:\emp\\TestCP\\d2\\p2\\Class2.java

view plaincopy to clipboardprint?

package p2;

import p1.Class1;

public class Class2 {

public static void main(String[] args){

Class1 c1 = new Class1();

c1.show();

}

}

package p2;

import p1.Class1;

public class Class2 {

public static void main(String[] args){

Class1 c1 = new Class1();

c1.show();

}

}

编译的时候,我们先在 d:\emp\estCP\\d1 编译Class1

D:\emp\estCP\\d1>javac p1\\Class1.java

编译成功

然后我们在 d:\emp\estCP\\d2 下编译 Class2。有2个方法进行编译:

第一:指定源文件 sourcepath

D:\emp\estCP\\d2>javac -sourcepath .;../d1 p2\\Class2.java

第二:指定classpath

D:\emp\estCP\\d2>javac -sourcepath . -cp ../d1 p2\\Class2.java

两个方法都能达到我们需要的效果。也就是说,在路径里,系统会在其下面根据package自动寻找源文件或者class文件的。

另一个情况,如果我们需要某个类库的支持,比如jar文件,那么我们就不能只包含路径就行了,而是应该包含整个路径和文件名,比如

D:\emp\estCP\\d2>javac -sourcepath . -cp ../d1;d:/lib/spring.jar p2\\Class2.java

第二、在运行时

我们需要指定其他的class在哪里,以及我们需要的类库在哪里,所以运行命令应该

D:\emp\estCP\\d2>java -cp .;../d1;d:/lib/spring.jar p2.Class2

Class1

总结:

路径分为2种,如果是jar或者zip形式的,那么必须包含完整的路径和文件名,大小写都不能错。

如果是class文件,那么只需要包含路径就行了。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fupindai.com 版权所有 赣ICP备2024042792号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务