java - 无法在 java 中加载/引用相应的 dll 和 jar
问题描述
我有几个 SDK,当安装在 Windows 上时,会在
C://Program Files//SDK Name//folders and files
.
我在 setup 类的 main 方法中有一个 switch case,根据提供 SDK 名称的字符串输入,我需要从上面指定的安装位置加载/引用该 SDK 的相应 dll 和 jar。
由于这些 dll 和 jar 可以随着每个新的 SDK 构建而改变,我希望从指定的安装位置选择它们,而不是将它们包含在我的项目中。
您能否让我知道如何在 JAVA 中完成此操作(Windows 10、netbeans 11、jdk 13)。我尝试了以下方法,但没有奏效:
在setup类的main方法里面:
switch (sdkName.toLowerCase()) {
case "A": {
A sdkA= new A();
//Class for each SDK. How to Load dlls and jars from this class or within this case statement ?
System.load("above path to native library/dll") //Doesn't WORK gives java.lang.unsatisfiedLink error
break;
}
case "B": {
B sdkB= new B();
break;
}
case "C":{
C sdkC= new C();
break;
}
}
我尝试使用 maven 并在 pom.xml 中添加了以下内容。编译但在运行时我得到 NoClassDefFound 并且不确定这是否是正确的方法,因为我仍然必须为所有 sdk 中的所有 jar 和 dll 执行此操作。
<dependency>
<groupId>com.crossmatch.biobase</groupId>
<artifactId>BioBase</artifactId>
<type>jar</type>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:\\Program Files\\Crossmatch\\SDKA\\Lib\\a.jar</systemPath>
</dependency>
尝试通过项目文件夹和目标文件夹中的类路径传递 jar 文件:
java -cp "C:\Program Files\SDK\a.jar,MyApp-1.0-SNAPSHOT.jar" com.company.classNamewiwthMainMethodSetUpClass xmlFileThatReadsTheSDKNameandOTherSDKSpecificData
在这里我得到错误:
无法找到或加载主类.. ClassNotFoundException
解决方案
推荐阅读
- python - 将样式逐行应用于 pandas DataFrame
- python - 获取添加到 MongoDB 上的内部集合的对象的 ID
- jmeter - 预处理器变量在 websocket 请求中不可用
- circuit-sdk - 如何通过 webhook 提交带边框的表格?
- c# - 如何在谷歌云平台控制台中启用“Vector Tile API”?
- assembly - 用汇编语言 8086 显示一个框
- java - 如何使用多个属性文件(通过 PropertyPlaceholderConfigurer),有一个可选的属性文件?
- sql-server - 具有多个 Excel 连接的 SSIS 包无法通过 SQL 代理作业工作
- sonarqube - SonarQube 多模块多子文件夹项目配置
- django - 在模板 django 中渲染数据库值