java类里的package声明,在编译阶段只是用来进行验证,看这个类是不是放在正确的路径下,这个验证只会在
make机制下才会进行(make是指自动编译所需要类别),当直接编译类时,是不会做这种验证操作的。
Do a test:
package test;
public class A
{
public static main(Strings[] args)
{
System.out.print('ok');
}
}
运行javac A ,应该不会出错
运行java A,应该会报错,说明在运行时也会检查package信息。虽然可以绕过make机制成功编译,但是放置的路径不对,程序无法运行。
javac A.java:A.java不会通过make机制去寻找
java A会通过classpath机制(类似于make机制,也就是通过类别路径参考表来进行寻找)来寻找A.class文件。
make机制下才会进行(make是指自动编译所需要类别),当直接编译类时,是不会做这种验证操作的。
Do a test:
package test;
public class A
{
public static main(Strings[] args)
{
System.out.print('ok');
}
}
运行javac A ,应该不会出错
运行java A,应该会报错,说明在运行时也会检查package信息。虽然可以绕过make机制成功编译,但是放置的路径不对,程序无法运行。
javac A.java:A.java不会通过make机制去寻找
java A会通过classpath机制(类似于make机制,也就是通过类别路径参考表来进行寻找)来寻找A.class文件。
Java包声明详解
本文探讨了Java中package声明的作用及其实现原理。解释了在编译阶段如何验证类是否位于正确的路径下,并讨论了make机制与classpath机制的区别。此外,还通过示例展示了不正确的路径设置如何导致程序无法运行。
450

被折叠的 条评论
为什么被折叠?



