当前位置: 技术问答>java相关
为什么不能调用不同package里的类?
来源: 互联网 发布时间:2017-04-17
本文导语: 比如我在我的CLASSPATH下的c05/local目录下定义了 ///: c05:local:PackagedClass.java package c05.local; public class PackagedClass { public PackagedClass() { System.out.println( "Creating a packaged class"); } } ///:~ 在CLASSPATH下...
比如我在我的CLASSPATH下的c05/local目录下定义了
///: c05:local:PackagedClass.java
package c05.local;
public class PackagedClass {
public PackagedClass() {
System.out.println(
"Creating a packaged class");
}
} ///:~
在CLASSPATH下的c05/foreign目录下定义了
///: c05:foreign:Foreign.java
package c05.foreign;
import c05.local.*;
public class Foreign {
public static void main (String[] args) {
PackagedClass pc = new PackagedClass();
}
} ///:~
Foreign.java编译不能通过,说是找不到c05.local包(如果Foreign.java直接放在CLASSPATH下倒是可以正常运行),请问是为什么?怎么解决?
///: c05:local:PackagedClass.java
package c05.local;
public class PackagedClass {
public PackagedClass() {
System.out.println(
"Creating a packaged class");
}
} ///:~
在CLASSPATH下的c05/foreign目录下定义了
///: c05:foreign:Foreign.java
package c05.foreign;
import c05.local.*;
public class Foreign {
public static void main (String[] args) {
PackagedClass pc = new PackagedClass();
}
} ///:~
Foreign.java编译不能通过,说是找不到c05.local包(如果Foreign.java直接放在CLASSPATH下倒是可以正常运行),请问是为什么?怎么解决?
|
注意在编译的时候,进到c05的父目录下进行编译
javac c05/foreign/Foreign.java
运行用 java c05.foreign.Foreign
javac c05/foreign/Foreign.java
运行用 java c05.foreign.Foreign
|
假如你的文件目录如下:
d:hwc05localPackagedClass.java
d:hwc05foreignForeign.java
你先到:d:hwc05localjavac PackagedClass.java
然后回到
d:hw
d:hw>javac c05foreignForeign.java
d:hwjava c05.foreign.Foreign
运行
你试试
d:hwc05localPackagedClass.java
d:hwc05foreignForeign.java
你先到:d:hwc05localjavac PackagedClass.java
然后回到
d:hw
d:hw>javac c05foreignForeign.java
d:hwjava c05.foreign.Foreign
运行
你试试
|
要把那个包的路径在classpath 下设置一下,因为classpath 指出的是可以用的包,这样在哪里便以都可以了或者用java -cp 命令,-cp 后面指出用到的类的路径