管理Java类路径(Windows)

类路径可以连接 Java 运行库和文件系统。它定义编译器和解释器应该在何处查找要加载的 .class 文件。它的基本思想是:文件系统的层次结构反映了 Java 包的层次结构,而类路径则定义了文件系统中的哪个目录可以作为 Java 包层次结构的根。

遗憾的是,通常文件系统非常复杂并依赖于平台,而且和 Java 包也不能很好地匹配。尤其是在 Windows 环境中更是如此。Java 是一些 Unix 高手设计的,因而从很多方面来说,这也就意味着它无法很好地与 Windows 约定同步。这样一来,不论是新用户还是资深 Java 程序员都深感类路径的棘手。没错,它的确不是 Java 平台好的一面,它让您到了下班的时候还在忙于调试一个顽固的小问题。

当然采用 Eclipse 这样的优秀 IDE 可以减少管理类路径的一些困难,但只能说是一些,而且前提还必须是一切都正常(但这不大可能,因为总会有一些意外出现)。因此,每个 Java 程序员都必须要全面了解类路径,惟有如此,才有希望调试类路径中所出现的问题。

在本文中,我给出了您所需要了解的有关 Windows 中的 Java 类路径(以及相关源路径)的全部内容。本文的 姊妹篇 则展示了 UNIX 和 Mac OS X 上的类似技术。遵循这里列出的步骤可以防止不必要的类路径故障并能解决出现的大多数问题。

包结构

要掌握类路径,首先应从其源代码入手。每个类都属于一个包,而此包必须 遵守标准的命名约定。简单地说,包的名称要由颠倒的两级域名开始,比如 com.example 或 edu.poly,之后是至少一个或多个单词用于描述包的内容。比方说,假设有一个域名为 elharo.com,如果要创建一个 Fraction 类,可以将其放入如下包中:

com.elharo.math

com.elharo.numbers

com.elharo.math.algebra.fields

在颠倒的域名之后,需要使用单一单词的子包名。不要使用缩写形式,并要保证拼写正确。如果需要,可以使用拼写检查器。大部分与类路径相关的问题都是由在源代码中使用某个单词而在文件系统中使用的却是与之稍有不同的拼写或缩写而引起的。所以最好的做法就是总是使用拼写正确且没有缩写的名称。

整个包名称应该是小写的,即使该名称是在别处常采取大写形式的一些惯用名称和缩写词。Windows 通常不区分文件名中的大小写,但 Java 和一些 UNIX 文件系统却区分。如果需要在不同的系统间移动文件,大小写问题肯定会带来一些麻烦。

包名称必须要全部由 ASCII 字符组成。一些编译器也接受用 Hebrew、Cyrillic、Greek 或其他脚本编写的包名称,但大多数文件系统并不接受;您稍后就会看到,这样的包名称必须担负充当目录名这样的双重任务。Java 包和类名是 Unicode,但很多文件系统(包括 FAT)却不能识别 Unicode。遗憾的是,FAT 系统非常之多。如果只简单地用不同的默认编码将文件复制到系统将会使编译器和解释器无法找到正确的类。

不要试图在包名称方面节约成本。长远来看,这只会有百害而无一利。如果需要域名就买一个。如果名称太长就买个短些的(我曾经买到了 xom.nu 这样一个域名,因而我的包前缀就只有 6 个字符)。不要将类放到默认包中(默认包是指如果未在类中包含一条包语句时系统默认给出的包)。如果包访问不利于对象间的通信,就需要向类中添加更多的公共方法。需要多次使用的类必须要放到包中。

配置 Windows

文件扩展名和路径对于 Java 和 Windows 来说都很重要。所以在开始下面的步骤之前,务必确保能够看到它们。隐藏部分文件名对终端用户来说还可以接受(但我并不完全这么认为),但对于开发人员来说显然不行。要解决这个问题,需要对 Windows Explorer 的一些默认设置做些更改。

首先在 Windows 桌面打开任意一个文件夹。找到 Tools 菜单,选择 Folder Options。在随后打开的对话框中,确认选择了如下三个选项,如图 1 所示:

“Display the full path in the address bar” 应该选中。

“Display the full path in title bar” 应该选中。

“Hide file extensions for known file types” 应该清除。

图 1. Windows Explorer 选项

您可能还想选中 “Show hidden files and folders”,它对您的 Java 作业没有多大影响,但就我个人而言,我很希望能够看到所操作的所有内容。选中这些选项可以显露关于所做事情的更多细节,使您能更轻松地调试所出现的问题。

时间: 2024-09-11 20:32:26

管理Java类路径(Windows)的相关文章

管理Java类路径(UNIX和Mac OS X)

类路径可以连接 Java 运行库和文件系统.它定义编译器和解释器应该在何处查找要加载的 .class 文件.它的基本思想是:文件系统的层次结构反映了 Java 包的层次结构,而类路径则定义了文件系统中的哪个目录可以作为 Java 包层次结构的根. 遗憾的是,通常文件系统非常复杂并依赖于平台,而且和 Java 包也不能很好地匹配.这样一来,不论是新用户还是资深 Java 程序员都深感类路径的棘手.没错,它的确不是 Java 平台好的一面,它让您到了下班的时候还在忙于调试一个顽固的小问题. 当然采用

Java中获取类路径classpath的简单方法(推荐)_java

如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo

Java 9 将会从默认类路径中去除 CORBA

作为模块系统的一部分正在进行的迁移,CORBA和其他的Java EE模块在Java 9更新时将不会包含在默认的类路径中.这些模块依然能够获取,但是开发者们需要使用特定的命令行指令才能够使用它们.这个变化只会影响到非模块化的.以Java 9为目标系统的应用,因为模块化的应用已经需要详细指出它们依赖的模块. 正如"模块系统的情形" 中解释的那样,模块化在Java 9中的附加功能不会强制开发者直接使用它们,反而,Java 9中提供了一定数量的向后兼容选项.其中一个允许在Java 9中完成传统

Java 类的热替换 —— 概念、设计与实现

构建基于 Java 的在线升级系统 对于许多关键性业务或者庞大的 Java 系统来说,如果必须暂停系统服务才能进行系统升级,既会大大影响到系统的可用性,同时也增加了系统的管理和维护成本.因此,如果能够方便地在不停止系统业务的情况下进行系统升级,则可以很好地解决上述问题.在本文中,我们将基于实例,对构建在线升级 Java 系统的基础技术和设计原则进行了深入的讲解.相信读者能够根据文中的技术构建出自己的在线升级系统来.   Java ClassLoader 技术剖析 在本文中,我们将不对 Java

java取得路径各种方法总结

  1. java文件中获得路径 Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径 ClassLoader.getSystemResource("") Class_Name.class.getClassLoader().getResource("") Class_Name.class .getResource("/&

JSP中调用java类,系统找不到指定文件

问题描述 JSP页面中调用后台的java类,java类中想读取某个路径的文件,但是系统提示找不到指定的路径我大概知道估计是Web页面通过tomcat服务器后路径问题但不知道怎么解决而且调用的这个java类是个普通类不是servlet,不用request希望高手帮小弟解决一下JSP:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%&

Android手机管理工具类详解

Android手机管理工具类 AppPhoneMgr分享给大家,供大家参考,具体内容如下 工具类内的方法: getInstance          : 单例对象 getSDKVersionNumber  : 获取手机系统版本号 getPhoneModel        : 获取手机型号 getPhoneWidth        : 获取手机宽度 getPhoneHeight       : 获取手机高度 getPhoneImei         : 获取手机imei串号 ,GSM手机的 IME

实战php调用java类由java类读数据库完成相关操作(Inber Write)

数据|数据库 1 建立系统ODBC 数据源photo(本次使用的是Oracle 9i,详细配置如有不懂这处再和我联系)2 编译DataBaseConnection.java文件 将其编译文件放入到PHP支持的类文件目录中 package com.inberkong.util;/******************************************************* * Programe File :复件缓冲池DataBaseConnection.java * Creat  

php 调用 java类 常见配置错误

错误 不搞PHP开发的工作很长时间了,最近修改一个原来做的项目要支持调用Java类,开始重操PHP,先解决配置问题再说.不说太多费话.网上的 文章不少,但是都有很多错误的东西在里面,下面我介绍一下我配置全过程与大家分享,如有问题可以虽时联系愿意为你解决. 说明:此文章的正常性只对本文中所提供版本的PHP和JDK有保证,其它版本的未一一试,如有问题及时联系愿与你一起解决相关问题. 安装配置PHP的工作这里就略过(有不会的朋友可以与我联系inber_net@hotmail.com) 测试环境:Win