问题描述
- java中 包里存放的是类名.java 还是类名.class?
-
问题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%libdt.jar;%JAVA_HOME%lib ools.jar; 执行的时候是怎么顺序查找的? 4.D:延飞>javac -d d:延飞myclass DemoA.java 编译通过了 以上疑问请各位大神帮忙分析下, 谢谢!
解决方案
解决方案二:
.class才是可执行的,所以包里都是.class
解决方案三:
.java 文件编译后生成可执行文件 .class
你包下没有,应该是没有编译运行生成对应的 .class 文件
解决方案四:
配环境变量,只是开发平台路径与 classpath 关系是一一对应的,对应自己的 classpath。
配好环境变量,才可使用平台的所有功能
否则有些功能不能实现,其他的路径跟他没必然联系,但需要classpath 配置正确。
%JAVA_HOME%libdt.jar;
%JAVA_HOME%lib ools.jar;
他们之间是并列关系(没有顺序之分,需要哪个按那个配置查找)
在另一种老版本的 windows 系统下,他们不再同一行 classpath 下有多个路径设置
Windows7 下 classpath 值在同一行,不同的路径配置之间用 ; 分号隔开而已
解决方案五:
包都是编译之后的东西,当然是这个class文件了
.java的叫做源文件
解决方案六:
应该是类名class.
解决方案七:
是编译好的 **.class 文件
时间: 2024-08-03 20:23:54