问题1 java中 包里存放的是类名.java 还是类名.class? 类名.java文件一定要放在所 属包目录下吗?
问题2.见下代码
package packb;
public class DemoB
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
package packa;
class DemoA
{
public static void main(String[] args)
{
packb.DemoB b = new packb.DemoB();
System.out.println("Hello World!");
}
}
DemoB.java 和 DemoA.java都存放在D:\延飞目录下;
现在问题为:
1.D:\>javac -d D:\延飞\myclass DemoB.java //把DemoB.java编译后生成的packb.DemoB.class文件放在了D:\延飞\myclass下;
2.D:\延飞>javac -d D:\延飞\myclass DemoA.java
DemoA.java:6: 错误: 程序包packb不存在
packb.DemoB b = new packb.DemoB();
^
DemoA.java:6: 错误: 程序包packb不存在
packb.DemoB b = new packb.DemoB();
^
2 个错误 //
疑问:2.1:这里为啥程序包packb不存在?这里的程序包packb指的是D:\延飞\my class下的packb.DemoB.class文件还是D:\延飞下的DemoB.java?
2.2假如程序包packb指的是D:\延飞\myclass下的packb.DemoB.class文 件,那么这已经是.class文件了,packb.DemoB b = new packb.DemoB();还能用吗?packb.DemoB b = new packb.DemoB();不是调用的DemoB.java文件吗?
2.3假如程序包packb指的是D:\延飞下的DemoB.java文件,那么DemoB.java不是也在D:\延飞下的吗,怎么会程序包packb不存在?
3.D:\延飞>set classpath= d:\延飞\myclass
3.1这里设置的classpath=d:\延飞\myclass和系统环境变量classpath有何关系,系统classpath设置的是.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 执行的时候是怎么顺序查找的?
4.D:\延飞>javac -d d:\延飞\myclass DemoA.java 编译通过了
以上疑问请各位大神帮忙分析下, 谢谢!