2 zyf4005 zyf4005 于 2016.04.30 10:57 提问

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%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;   执行的时候是怎么顺序查找的?

        4.D:\延飞>javac -d d:\延飞\myclass DemoA.java 编译通过了

        以上疑问请各位大神帮忙分析下, 谢谢!

7个回答

CSDNXIAOD
CSDNXIAOD   2016.04.30 11:02

java中类名.class
java类名问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

jhfsdfs
jhfsdfs   2016.04.30 11:01

.class才是可执行的,所以包里都是.class

niaonao
niaonao   Rxr 2016.04.30 11:19

.java 文件编译后生成可执行文件 .class
你包下没有,应该是没有编译运行生成对应的 .class 文件
包下的  .java 文件即你写的代码图片说明
包图片说明
图片说明
图片说明
这个包和前两张图包不是同一个包,这是你的 .java 文件编译生成的 .class 文件存储的地方图片说明

zyf4005
zyf4005 3.D:\延飞>set classpath= d:\延飞\myclass 3.1这里设置的classpath=d:\延飞\myclass和系统环境变量classpath有何关系,系统classpath设置的是.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 执行的时候是怎么顺序查找的?
一年多之前 回复
niaonao
niaonao   Rxr 2016.04.30 14:35

配环境变量,只是开发平台路径与 classpath 关系是一一对应的,对应自己的 classpath。
配好环境变量,才可使用平台的所有功能
否则有些功能不能实现,其他的路径跟他没必然联系,但需要classpath 配置正确。

%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar;
他们之间是并列关系(没有顺序之分,需要哪个按那个配置查找)
在另一种老版本的 windows 系统下,他们不再同一行 classpath 下有多个路径设置
Windows7 下 classpath 值在同一行,不同的路径配置之间用 ; 分号隔开而已

fk002008
fk002008   2016.04.30 23:53

包都是编译之后的东西,当然是这个class文件了
.java的叫做源文件

sinat_34851444
sinat_34851444   2016.05.01 17:51

应该是类名class.

zsw_2015
zsw_2015   2016.05.02 20:25

是编译好的 **.class 文件

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!