Java 将jar中的库动态添加到类路径
所以我正在创建一个Java项目,我想在一个JAR中包含一组库 我的项目是这样设置的: libs/(罐)Java 将jar中的库动态添加到类路径,java,jar,classpath,libraries,Java,Jar,Classpath,Libraries,所以我正在创建一个Java项目,我想在一个JAR中包含一组库 我的项目是这样设置的: libs/(罐) Main.java 我不知道如何在编译Main.java文件时,在不添加类路径的情况下将JAR包含到Main.java文件中: java -cp libs/*;. Main.java 这样做是动态的吗?My Main.java在其中一个jar中扩展了一个类,因此我无法加载主类中的类。您可以在编译时设置jar文件类路径;并解释(部分) 指定要包含在小程序或应用程序清单文件的类路径头字段中的类。
Main.java 我不知道如何在编译Main.java文件时,在不添加类路径的情况下将JAR包含到Main.java文件中:
java -cp libs/*;. Main.java
这样做是动态的吗?My Main.java在其中一个jar中扩展了一个类,因此我无法加载主类中的类。您可以在编译时设置
jar
文件类路径;并解释(部分)
指定要包含在小程序或应用程序清单文件的类路径
头字段中的类。类路径
标题采用以下形式:
Class-Path: jar1-name jar2-name directory-name/jar3-name
因此,使用类路径头为Manifest.txt
创建一个文本文件,然后(同样来自链接的Oracle教程)
对我来说,我喜欢在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
#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