此问题与运行依赖于第三方 jar 库的 Java 程序 (jar) 有关,即使在设置类路径并通过阅读 Internet 上的文章尝试了许多其他方法之后也是如此。
我想使用第三方 Pack1.jar(它不是 jvm 的一部分)作为我程序的依赖项。 我不知道 Pack1.jar 文件在部署机器中的什么位置,我希望部署者指定第三方库的路径
我已经尝试了以下替代方法,但没有成功
以编程方式设置 java.class.path
String class_path = args[0]; System.setProperty("java.class.path",class_path);
这里我假设部署者会在运行程序时提供类路径作为第一个参数
设置 CLASSPATH env_var 以定位第三方目录
运行时,使用类路径选项
java -classpath /path/to/Pack1.jar -jar Pack2.jar
我认为这行不通,因为文档说当使用“java -jar”运行程序时会忽略类路径
以编程方式设置 java.ext.dirs。
- 以编程方式设置 java.library.path。
我不想在 list 中指定类路径,因为它只采用相对路径,而且我不知道第三方库在部署机器中的位置
但我无法让 jar 运行。
请帮忙解决这个问题。
最佳答案
选择选项 3。像这样将两个 jar 放在类路径中:
java -classpath '/path/to/Pack1.jar:/path/to/Pack2.jar' com.packagename.yourclassname
请注意,这是针对 Linux 的。在 Windows 上,您将用分号分隔类路径元素:
java -classpath "/path/to/Pack1.jar;/path/to/Pack2.jar" com.packagename.yourclassname
关于java - 运行 Java 程序链接到第三方库 (java -jar) 问题(尝试了多种方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8080889/