Can’t load this .dll (machine code=0xbd) on a AMD 64-bit platform
问题背景
- 使用idea开发工具
- maven 管理工程
- Tomcat 8 做server
问题出现
使用maven打包时,tomcat控制台报错
java.lang.UnsatisfiedLinkError: E:\x\regist.dll: Can’t load this .dll (machine code=0xbd) on a AMD 64-bit platform
然后对比 dll 文件前后的大小,发现文件变大了! 猜测是maven或者idea对其进行了修改.
通过百度查询到可能是maven的问题.
running-my-generated-jar-yields-cant-load-this-dll-machine-code-0xbd-on
然后在去查询相关资料,解决了问题!
问题原因
使用maven打包时,会将 ${xx}
中的内容替换为配置的 properties 属性
<properties>
<!-- 编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.dll</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
而 dll 文件中可能存在 ${}
,所以导致了该问题的出现
问题解决
去掉对 dll 文件的 filtering
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
还是对maven工程不熟悉,只是用到哪,学到哪. 有时出现的问题,十分奇怪.
工欲善其事必先利其器.还是要熟悉一下maven的.