java 核心技术-12版 卷Ⅰ- 4.8.7 设置类路径

createh51个月前 (04-05)技术教程7

原文

4.8.7 设置类路径

最好使用 -classpath(或 -cp, 或者Java 9 中的 --calss-path) 选项指定类路径:

java -classpath /home/user/classdir:.:/home/user/archives/archive.jar MyProg

或者

java -classpath c:\classdir;.;c:\archives\archive.jar MyProg

整个命令必须写在一行中。将这样一个很长的命令行放在一个shell 脚本或一个批处理文件中是个不错的注意。

利用-classpath 选项设置类路径是首选的方法,另一种方法是通过设置CLASSPATH环境变量来指定类路径。具体细书依赖于所使用的 shell。在 Bourne Again shell (bash)中,命令如下:

export CLASSPATH=/home/user/classdir:.:/home/user/archives/archive.jar

在Windows shell中,命令如下:

set CLASSPATH=c:\classdir;.;c:\archives\archive.jar

直到退出 shell 为止,类路径设置均有效。


警告:有人建议永久地设置 CLASSPATH 环境变量。一般来说这是一个精糕的想法。人们有可能会忘记全局设置,因此,当他们的类没有正确地加载时,就会感到很奇径。一个颇受诟病的示例是 Windows 中Apple QuickTime 安装程序。很多年来,它都将CLASSPATH全局设置为指向它需要的一个JAR 文件,而没有在类路径中包含当前目录。因此,当程序编译后却不能运行时,无数 Java 程序员不得不花费很多精力去解决这个问题

警告: 过去,有人建议完全绕过类路径,将所有的 JAR 文件都放在 jre/lib/ext目中。这种机制在Java 9中已经过时,不过不管怎样这都是一个不好的建议。从扩展目录加载一些已经遗忘很久的类时,这会让人非常困惑。

注释:在Java9中,还可以从模块路径加载类。本书卷2的第9章将讨论模块和模块路径。

相关文章

java 核心技术-12版 卷Ⅰ- 4.7.1 记录 record

原文4.7 记录有时,记录就只是数据,而面向对象程序设计提供的数据隐藏有些碍事。考虑一个类Point ,这个类描述平面上的一个点,有x和y 坐标。当然,可以如下创建一个类public class Po...

阿里大数据技术架构师整理分享java面试核心知识点框架篇文档

前言本文是对Java程序员面试中常见的微服务、网络编程、分布式存储和分布式计算等必备知识点的总结,包括Spring 原理及应用、Spring Cloud原理及应用、Netty网络编程原理及应用、Zoo...

java 核心技术-12版 卷Ⅰ- 5.10 继承的设计技巧

原文5.10 继承的设计技巧在本章的最后,我会给出使用继承时很有用的一些技巧。将公共操作和字段放在超类中正是因为这个原因,我们将姓名字段放在 Person 类中,而没有将它重复放在 Employee...

java 核心技术-12版 卷Ⅰ- 5.4 对象包装器与自动装箱

原文5.4 对象包装器与自动装箱有时,需要将 int 这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类,例如,Integer类对应基本类型 int。通常,这些类称为包装器 (wrapper...

Java核心知识 Zookeeper(二)角色

Zookeeper 集群是一个基于主从复制的高可用集群,每个服务器承担如下三种角色中的一种 Leader1. 一个 Zookeeper 集群同一时间只会有一个实际工作的 Leader,它会发起并维护与...