我的单元测试在eclipse中工作,因为在jna.library.path中正确设置了DLL的路径。
但是使用该插件的mvn test会因此错误而失败。
无法加载库'ehlapi32':资源路径中找不到本机库(win32-x86-64 / ehlapi32.dll)
<plugin><!-- This doesn't work -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<workingDirectory>target</workingDirectory>
<forkmode>never</forkmode>
<argLine>-Djna.library.path=C:/my.dll</argLine>
</configuration>
</plugin>
这是我的万无一失的配置解决了这个问题。我试图加载的特定DLL需要一个32位JVM。所以我指定了。
在此之后,使用推荐的方法之一找到DLL以使用JNA加载dll。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<workingDirectory>target</workingDirectory>
<forkmode>once</forkmode>
<jvm>C:\Program Files (x86)\Java\jdk1.8.0_102\bin\java</jvm>
</configuration>
</plugin>