1. 为什么会有包,package
因为可能会出现相同的类名,所以通过 包名.类名 来作 区分
2. 格式
package 包名;
例如
package a.b.c.d.test;
假如一个类有包名,那么他就不能任意存放位置,否则虚拟机无法加载这样的类。
3. 实际的例子
Learn.java
package a.b;
public class Learn {
public static void main (String args[]) {
System.out.println("hello!");
}
};
编译命令
javac Learn.java
会在当前目录生成Learn.class
lydia@lydia:~/sgy/java_learn/package_import_learn$ ls
Learn.class Learn.java
执行结果
lydia@lydia:~/sgy/java_learn/package_import_learn$ java Learn
错误: 找不到或无法加载主类 Learn
得按照下面的步骤,才能正确执行这个执行程序
- 需要有特定的package目录才行
lydia@lydia:~/sgy/java_learn/package_import_learn$ tree -A
.
├── a
│ └── b
│ └── Learn.class
└── Learn.java
- 实际执行的命令
java a.b.Learn
另外一种编译的方式,他会直接创建包的目录
javac -d . Learn.java
执行结果
lydia@lydia:~/sgy/java_learn/package_import_learn$ java a.b.Learn
hello!