1. Maven 依赖管理:
a) 在项目根目录创建 pom.xml 文件(如果不存在)
b) 在 pom.xml 的 标签内添加依赖:
xml
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>example-library</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
c) 运行 mvn install
下载依赖
2. Gradle 依赖管理:
a) 在项目根目录创建 build.gradle 文件(如果不存在)
b) 在 build.gradle 文件中添加依赖:
gradle
dependencies {
implementation 'org.example:example-library:1.0.0'
}
c) 运行 gradle build
下载依赖
3. 手动添加 JAR 文件:
a) 创建 lib 目录(如果不存在)
b) 将 JAR 文件复制到 lib 目录
c) 在 IDE 中(以 IntelliJ IDEA 为例):
-
右键点击项目 -> Open Module Settings
-
选择 Libraries -> + -> Java
-
选择 JAR 文件 -> Apply -> OK
4. 模块依赖(Java 9+):
a) 在 src 目录下创建 module-info.java 文件
b) 在文件中声明依赖:
java
module com.myapp {
requires org.example.library;
}
c) 确保依赖的 JAR 在模块路径上
5. 类路径(Classpath):
a) 将依赖的 JAR 文件放在已知位置
b) 运行 Java 程序时指定类路径:
java -cp .:path/to/your/jar:path/to/dependency.jar YourMainClass
6. 系统范围依赖(不推荐):
a) 在 pom.xml 文件中添加系统范围依赖:
xml
<dependency>
<groupId>com.example</groupId>
<artifactId>example-jar</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/example.jar</systemPath>
</dependency>
b) 确保 JAR 文件在指定路径存在
7. 动态加载:
a) 在代码中使用 URLClassLoader 动态加载类:
java
try {
URLClassLoader classLoader = new URLClassLoader(new URL[]{new File("path/to/your.jar").toURI().toURL()});
Class<?> loadedClass = classLoader.loadClass("com.example.YourClass");
// 使用 loadedClass...
} catch (Exception e) {
e.printStackTrace();
}
8. OSGi 框架:
a) 设置 OSGi 环境(如使用 Eclipse Equinox)
b) 将依赖打包为 OSGi bundle
c) 在 bundle 的 MANIFEST.MF 文件中声明依赖:
Import-Package: org.example.library
d) 在 OSGi 运行时部署和启动 bundle
9. 自定义类加载器:
a) 创建自定义 ClassLoader 类:
java
public class CustomClassLoader extends ClassLoader {
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
// 实现类加载逻辑
}
}
b) 使用自定义 ClassLoader 加载类:
java
CustomClassLoader loader = new CustomClassLoader();
Class<?> clazz = loader.loadClass("com.example.YourClass");
10. 依赖注入框架(以 Spring 为例):
a) 添加 Spring 依赖到项目
b) 创建配置类或 XML 配置
c) 使用注解或配置声明依赖:
java
@Configuration
public class AppConfig {
@Bean
public MyDependency myDependency() {
return new MyDependency();
}
}
d) 在需要的地方注入依赖:
java
@Autowired
private MyDependency myDependency;
12. 构建工具插件:
a) 在 Maven 的 pom.xml 或 Gradle 的 build.gradle 中配置插件
b) 使用插件提供的任务或目标来管理依赖
13. 多模块项目:
a) 在父 pom.xml 中定义模块:
xml
<modules>
<module>module1</module>
<module>module2</module>
</modules>
b) 在子模块的 pom.xml 中声明对其他模块的依赖:
xml
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module1</artifactId>
<version>${project.version}</version>
</dependency>