`
jvtarena
  • 浏览: 17005 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

为何Java包导入的类会产生上述的差异呢?

    博客分类:
  • java
阅读更多
首先,感谢你的阅读,本人观点:学习编程是个漫长的过程并不是一时就会很厉害的,关键是坚持,快乐地学习,在这里分享我的一些笔记给你;(本文由广州达内http://www.jvtarena.com/zhiyeqianjing/为你分享;)
  问题:

  请问为何会出现Step6中的错误呢?使用 “import a.*;”导入a下所有类和接口,和使用“import a.World;”导入a包中具体的类,为何会产生上述的差异呢?

  回答

  当你导入一个包中所有的类时,javac在编译时并不确定你要使用的World类是a包中的类,还是其他包中的类,它会根据你机器上的CLASSPATH环境变量的值去查找类,通常我们在CLASSPATH中会设置一个点(.),表示当前目录,如果没有CLASSPATH环境变量,那么在JDK1.4之后,默认也是查找当前目录。javac在按照文件名(不包括后缀)来查找类,于是找到World.java,而这个文件根本不是字节码文件,当然就报错了。当你导入一个具体的类时,javac在分析源文件时就知道了你程序中用的类是a.World,那么它就在CLASSPATH环境变量下查找a目录下的World类,正好有,于是正确执行。

  为了帮助读者对这个问题加深理解,我给大家设计了下面的操作步骤(本文是在D盘上操作):

  (1)将a目录剪切到C:\下;

  (2)再次执行javac Hello.java,你会看到同样的错误。也就是证实了在出错之前,javac还没有去查找a包中的类(对于包是否存在的验证已经进行)。

  (3)执行set classpath=c:\。由于你明确地设置了CLASSPATH环境变量的值,并且没有包含点(.),因此javac不会再查找当前的目录。

  (4)再次执行javac Hello.java,你会发现成功执行。

  这里面还有一个有趣的现象,如果我们将a目录下的World.class删除,替换为World.java,那么在编译Hello.java时,World也会被自动编译。
从基础的学习到后面应用提高都非常的系统,无论你是本专业的还是跨专业的,都能有所收获,参加4个月的达内时光转眼已逝,伴随着喜悦,达内给你一个新的平台,一个崭新的开始。
分享到:
评论

相关推荐

    java 实现两excel(或csv)文件的比对(以某几列作为键值,比对指定列的值差异)

    在项目中,确保将`lib`文件夹下的`poi-ooxml`和`opencsv`等相关jar包添加到类路径(classpath)中。 以下是一些关键步骤和概念: 1. **读取Excel/CSV文件**:使用Apache POI,可以创建一个`XSSFWorkbook`对象来...

    JAVA跨数据库导出导入数据:SQL2000 导入到 MYSQL(附件)

    本话题聚焦于如何使用JAVA来实现SQL Server 2000中的数据导出并导入到MySQL的过程。这是一个涉及多平台兼容性和数据转换的问题,通常需要特定的工具或自定义代码来完成。 首先,SQL Server 2000是微软提供的一个...

    PDF比对全文内容,输出差异

    概述:比对PDF全文内容,输出差异结果,过滤特定元素【只能比对简单文件】 测试用例: ...工程整合上述三种测试场景,导入即可运行,测试文件均以整合到工程中。需要的额外jar已通过maven的形式引入。

    命令行下制作可导入项目执行的JAR包.pdf

    通过上述知识点,可以理解制作可导入项目执行的JAR包的过程,其中包括打包Java类文件、资源文件,配置Manifest文件指定主类,以及在不同操作系统中使用不同的命令行工具进行操作。熟练掌握这些步骤有助于开发者将...

    解决idea导入项目出错,打包没有依赖问题.docx

    在进行软件开发时,经常会遇到IDEA导入项目出现错误的情况,特别是在不同的计算机环境间共享项目时更为常见。本文将详细介绍如何解决IDEA导入项目出错的问题,包括依赖丢失、项目打包不包含依赖等问题,并提供具体的...

    java获取字符串编码类型代码(导入直接查看结果)

    上述代码会遍历Java支持的所有字符集,并尝试将字符串编码和解码,如果编码和解码后的内容一致,那么这个编码就可能是字符串的原始编码。然而,这种方法并不总是准确,因为可能存在多个编码方式都能正确表示相同的...

    java导出word、excel、pdf、txt文件,同时兼容office2003和office2007

    Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位。在处理文件导出,尤其是办公文档如Word、Excel、PDF和TXT时,Java提供了多个库来帮助开发者实现这些功能。本教程将详细介绍如何使用...

    java图像识别(判断两个图是否相似)

    1. 导入所需库:根据选择的方法,导入相应的Java库,如JavaCV、OpenCV等。 2. 读取图像:使用BufferedImage类读取并加载图像。 3. 图像预处理:可能需要调整大小、灰度化、归一化等操作,以统一输入格式。 4. 特征...

    java遍历JSON树

    假设字符串`s`中包含一个嵌套的JSON对象,那么运行上述代码后,程序将会输出所有的叶子节点及其值。具体输出取决于字符串`s`的具体内容。 #### 六、注意事项 1. **异常处理:** 在实际应用中,应该对可能出现的...

    《使用java面向对象编程》大纲

    - **掌握创建和导入包的方法**:理解包的作用,掌握包的创建和导入。 #### 第二部分 - **理解继承和多态**:了解继承的实现和多态的原理。 - **掌握访问修饰符和方法修饰符**:熟悉public、protected、private和...

    java 实现对当前操作系统的判断

    这些类可能会封装上述的判断逻辑,以提供更简洁、可重用的API。 此外,如果项目中包含单元测试,那么可能还会有使用`JUnit`或其他测试框架的测试类,确保在不同操作系统上都能正确地识别和处理。这些测试将覆盖各种...

    myeclipse用cvs上导入项目

    - **依赖问题**:如缺少JAR包等,可以通过上述步骤中的“Java Build Path”进行处理。 - **版本冲突**:如果遇到版本冲突的情况,通常需要手动解决这些冲突,可以参考CVS的官方文档或寻求同事的帮助。 #### 三、...

    浅谈Java中Mysql数据库的连接与操作.pdf

    1. 导入java.sql包; ```java import java.sql.*; ``` 2. 加载JDBC驱动程序; ```java Class.forName("com.mysql.jdbc.Driver").newInstance(); ``` 3. 创建数据库连接; ```java Connection con = DriverManager....

    java code convention

    3. **导入语句**:列出所有用到的外部类或包。 4. **类或接口声明**:定义类或接口的主体部分。 #### 四、缩进与行长度 ##### 4.1 行长度 每行代码建议限制在80个字符以内,以适应不同的编辑器和屏幕尺寸,同时...

    java md5 check tool

    如果这是一个Java程序,它可能包含了实现上述步骤的类和方法。用户可以通过运行这个程序,提供待校验文件的路径,然后工具会计算并显示文件的MD5值。 此外,这个工具可能还包含了一些额外的功能,如批量校验多个...

    json转换需要依赖的jar包

    JSON(JavaScript Object Notation)是一种轻量级的...根据提供的压缩包文件名"json转换依赖jar包",这可能是包含上述提到的一些JSON库的jar文件集合,使用这些库可以帮助开发者轻松地进行JSON与Java对象之间的转换。

    JAVA认证练习题.docx

    - 上述代码会抛出`ArrayIndexOutOfBoundsException`,因为尝试访问数组的越界索引。异常处理结构会捕获并打印“数组下标越界。” 15. 线程优先级: - 高优先级的线程在Java中理论上先获得CPU执行权,但在实际操作...

    将MyEclipse项目导入eclipse

    由于这两种IDE(集成开发环境)在某些配置上有差异,因此在导入过程中可能会遇到一些问题。接下来,我们将详细介绍如何将一个MyEclipse项目顺利导入到Eclipse中,并解决导入过程中可能出现的问题。 #### 一、准备...

    excel 2003导入升级到excel 2007

    在从Excel 2003迁移到更高版本,如Excel 2007时,用户可能会遇到兼容性问题、功能差异以及数据格式的变化。下面我们将详细探讨这些方面: 1. **兼容性问题**: - Excel 2003使用的是.XLS文件格式,而Excel 2007...

    在Eclipse中导入中文JavaDOC

    - **确保版本匹配**:下载的中文JavaDoc应与当前项目使用的Java版本相匹配,避免因版本差异导致的兼容性问题。 - **检查显示效果**:导入后,应立即测试JavaDoc的显示效果,确认其正确无误地显示为中文。 - **定期...

Global site tag (gtag.js) - Google Analytics