我开始使用HTMLParser之类的java包,我已经下载了它,发现里面有很多文件和目录。
我徘徊,将它们放在我的linux系统中的什么位置?有约定或标准吗?
快速而肮脏的答案是“类路径上的任何位置”,其中类路径设置为客户端计算机上的系统属性(不推荐),作为用于启动 JVM 的 CLI 会话的临时系统属性(可从启动脚本),或作为 JVM 的命令行参数(通常是首选)。
首先和第二个设置 CLASSPATH 环境变量,请参阅 JDK 或 JRE 文档以了解确切的语法以及您的操作系统和/或 shell 脚本文档。第三次使用 Java 运行时和编译器的 -cp 命令行变量,请参阅他们的文档以了解确切的语法。
将文件放在文件系统的什么位置?出于开发目的,我通常在我的计算机上使用一个包含所有此类库的中央文件夹,并从我的 IDE 或其他开发环境链接到该库。对于最终用户的部署/打包,传统的做法是在包含所有可分发内容的产品文件夹中拥有一个“lib”子文件夹,并将 jar 文件放入其中。
Java 包有两种形式。源代码- 您提到的所有文件和目录 - 并打包为jars。Java 项目中的一个常见约定是项目有一个 lib 目录,其中包含项目所依赖的所有 jar。这些项目通常使用一个 shell 脚本,在执行项目代码之前将所有 jars 添加到 Java 类路径中。
然而,许多项目正在从这种处理依赖关系的方法切换到使用像Apache Maven这样自动处理依赖关系管理的构建工具。其他选择包括Ivy或Gradle。有关介绍,请参阅 Maven 的5 分钟介绍或Maven 3 教程。
在这里,您编写一个 pom.xml(项目对象模型文件),它指定您的项目使用哪些库(jar)。然后,Maven 将您不同项目的所有 jar 存储在本地目录中的 .m2 目录中,跟踪获取它们的位置以及它们的版本信息。
这使得开发更加容易,因为您不需要创建 lib 目录或手动管理依赖项。您还避免了设置类路径的许多复杂性,因为 Maven 在常见的生命周期阶段(例如编译和测试)会自动为您执行此操作。最新版本的 Eclipse 可以读取 Maven pom 并从中自动配置您的类路径。
构建项目后,Maven 还可以通过程序集插件或 Shade 插件帮助创建包含项目所依赖的所有 jar 的“ fat jars ”。当您构建您希望某人使用的可执行文件时,这使得分发代码更容易。如果你正在分发一个 jar,那么你的 pom.xml 描述了你的项目的依赖关系,避免了分发它所依赖的 jar 的需要。
对于 Linux 系统上的一般文件布局,请参阅Linux 文件系统层次结构标准。