***eclipse中 不同的package相互调用类的时候要import
带package的文件在cmd中编译时 一定要用-d 才能带有包的性
javac -d 生成路径 java源文件路径
运行的时候
java package后面设定的包名 (千万不要加其他的前缀,否则会找不到类)*
我在一个d:\acm.\src中保存了一个叫Example1.java
package hehehehehe.haha;//表示将example1存在hehehehehe.haha里面 ps:只能用.不能用\
public class Example1{
public void haha(){
System.out.println("hahahehe");
}
}
D:\acm\src>javac -d d:\ Example1.java
D:\acm\src>java Example1 错误: 找不到或无法加载主类 Example1
D:\acm\src>
这时在d:中会自动生成包 包的最内层是Example1.class文件
然后我在d:写了一个main 要调用example1
import hehehehehe.haha.*;
public class Main{
public static void main(String args[]){
Example1 A=new Example1();
A.haha();
System.out.println(A);
}
}
调用时
> javac TestCircle.java
上面的命令会报错,提示找不到类com.yyy.Circle,所以我们需要告诉编译器该类的位置。通过选项-cp(-classpath)可以指定类路径的位置(这个路径是包所在的根目录,而不是包中类的目录。通过这个根目录,java会自动查找包中的类)。
javac -cp ./classes TestCircle.java
通过-cp指定类路径以后,可以顺利编译通过了,但是如果我们直接执行生成的class文件,还是会出现问题:
java TestCircle
上面的命令会报错,提示找不到类com.yyy.Circle,所以我们需要告诉命令哪里可以找到这个类,跟上面一样,给出这个类所在的位置,也就是类路径:
java -cp ./classses TestCircle
[来自于](http://www.cnblogs.com/now-fighting/p/4715432.html)
----------
所以是
D:\>javac -cp d: Main.java
D:\>java -cp d: Main
hahahehe
hehehehehe.haha.Example1@2a139a55