java中 包里存放的是类名.java 还是类名.class?

问题描述

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 编译通过了

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

解决方案

java中类名.class
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

java中 包里存放的是类名.java 还是类名.class?的相关文章

java中包容易出现的错误及权限问题

/* 3,权限在不同地方的体现:                 public   protected       default     private 同一类中:       ok       ok            ok         ok 同一包中:       ok       ok               ok 子类中:         ok       ok      不同包中:       ok   在同一包中子类中是可以访问父类中默认权限(default)的方法,但是

学习Java中的日期和时间处理及Java日历小程序的编写_java

Java 在 java.util 包中提供了 Date 类,这个类封装了当前的日期和时间. Date 类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date( )下面的构造函数接收一个参数等于自1970年1月1日午夜起已经过的毫秒数 Date(long millisec) 一旦有一个可用的日期对象,可以调用以下任何一种支持的方法使用时间: SN 方法和描述 1 boolean after(Date date) 如果调用Date对象包含或晚于指定的日期则返回true,否则,返回f

Java中关于Null的9个解释(Java Null详解)_java

对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java. 我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针.操作符重载.多继承实现的原因,null却与此正好相反.好吧,我真的不知道这个问题的答案,我知道的是不管null被Ja

请问java中包的问题

问题描述 在C:mypro路径下的文件a.javapublicclassa{publicstaticvoidmain(String[]args){System.out.println();}}是不是应为没用package语句,所以不属于任何一个包?即裸类? 解决方案 解决方案二:有输出,要io包.解决方案三:没用package,当然就不属于包了解决方案四:没有定义包的前提下,所有的java类都属于一个默认的无名包.解决方案五:java有一个默认的缺省包解决方案六:裸类?哈哈还是第一次听说有这名词

解析Java中所有错误和异常的父类java.lang.Throwable_java

在java语言中,错误类的基类是java.lang.Error,异常类的基类是java.lang.Exception. 1)相同点:java.lang.Error和java.lang.Exception都是java.lang.Throwable的子类,因此java.lang.Error和java.lang.Exception自身及其子类都可以作为throw的使用对象,如:throw new MyError();和throw new MyException();其中,MyError类是java.l

讲解Java中的基础类库和语言包的使用_java

Java基础类库 Java 的类库是 Java 语言提供的已经实现的标准类的集合,是 Java 编程的 API(Application Program Interface),它可以帮助开发者方便.快捷地开发 Java 程序.这些类根据实现的功能不同,可以划分为不同的集合,每个集合组成一个包,称为类库.Java 类库中大部分都是由Sun 公司提供的,这些类库称为基础类库. Java 语言中提供了大量的类库共程序开发者来使用,了解类库的结构可以帮助开发者节省大量的编程时间,而且能够使编写的程序更简单

java.util包学习笔记一

笔记 学习java2SDK 1.4.0 java.util里边有几个重要的接口,列在这里作为学习的总结: 1 java.util.Enumeration有两个方法hasMoreElements(),nextElement().使用方法如下://打印向量v的所有元素for(Enumeratin e = v.elements(); e.hasMoreElements();){ System.out.println(e.nextElement().toString());}这里注意要调用nextEle

java中的易混问题收集

问题 第一,final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时提供 finally 块来执行任

Java中的类反射机制

一.反射的概念 :反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩.其中LEAD/LEAD++ .OpenC++ .MetaXa和OpenJava等就是基于反射机制的语言.最近,反射机制也被应用到了视窗系统.操作系统和文件系统中. 反射本身并不是一个新概念,它可能会使我们联想到光学中的反射概念,尽管计算机科学