将jar中的库动态添加到类路径中

时间:2014-12-22 03:12:54

标签: java jar classpath libraries

所以我正在创建一个Java项目,我想在JAR中包含一组库。

我的项目设置如下:

库/(罐)
Main.java

我不确定如何将jar包含到我的Main.java文件中,而无需在编译时添加类路径:

java -cp libs/*;. Main.java

无论如何要动态地这样做吗?我的Main.java在其中一个jar中扩展了一个类,所以我无法加载Main类中的类。

2 个答案:

答案 0 :(得分:0)

您在编译时设置jar文件类路径;和Adding Classes to the JAR File's Classpath解释(部分)

  

指定要包含在applet或应用程序的清单文件中的Class-Path标头字段中的类。 Class-Path标题采用以下格式:

 Class-Path: jar1-name jar2-name directory-name/jar3-name

因此,使用Manifest.txt标题为您的Class-Path创建一个文本文件,然后(再次从链接的Oracle教程中)

jar cfm MyJar.jar Manifest.txt MyPackage/*.class

答案 1 :(得分:0)

对我来说,我喜欢在windows

中创建如下所示的批处理文件
@echo off
REM set any custom classpath 
SET classpath=.\;.\properties

REM load all libraries in specific directory
SET libpath=.\lib
FOR %%i IN (%libpath%\*.jar) DO call set classpath=%%classpath%%;%%i

java -cp %classpath% org.test.MyTest

基于unix的操作系统中的bash脚本

#set any custom classpath
classpath=./:./properties

#load all libraries in specified directory
for i in ./lib/*.jar
do
    classpath=$classpath:$i
done
export classpath
java -cp $classpath org.test.MyTest