在大家要在命令行模式下执行一个程序的时候,就有可能遇到这样一个错误:
错误: 找不到或无法加载主类 TestPackage
但是往往程序的编写是正常的,并且在IDE中执行的结果是正常的,首先贴上一个测试的全部源码:
package test_package;
/**
* Created by zhuxinquan on 16-7-23.
*/
public class TestPackage {
public static void main(String[] args) {
System.out.println("测试成功");
}
}
在IDE中的执行结果:
显示是正常执行的,然而在终端编译然后执行的结果就成了这样:
发生了错误:找不到或无法加载主类
其实原因就在于代码的最开始的行:
package test_package;
此处使用了package,因此在编译好的class文件的使用时默认是需要通过”包名.主类名”来进行运行的,并且包文件夹必须存在,执行如下:
如上结果,首先手动mkdir创建了一个包文件夹test_package,然后将编译好的class文件移动到包中,最后通过”包名.主类名”执行,发现执行成功。
关于访问修饰符的访问控制权限使用如下:
访问修饰符 | 同一个类 | 同包 | 不同包子类 | 不同包非子类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
默认 | √ | √ | ||
private | √ |