背景:我有一个 exe 文件,我想将其从 Java Maven 项目复制到用户的主目录中。我的项目运行完成后,我将从其主目录中删除这个 exe 文件。我需要使用此 exe 文件作为第三方资源,以便执行我需要为此项目执行的操作
问题: 我已将 exe 文件添加到 src/test/resources 文件夹和 src/main/resources 文件夹中。当我用maven构建项目并运行测试用例时,exe文件被正确复制和删除。
但是,当我运行Java项目时,exe文件运行失败。我收到一条错误消息:此版本的 xxx.exe 与您正在运行的 Windows 版本不兼容。检查您计算机的系统信息,了解您是否需要 x86(32 位)或 x64(64 位)版本的程序,然后联系软件发行商。
测试文件夹和主文件夹引用不同的资源文件夹,这就是为什么测试文件夹成功而主文件夹失败的原因。 我检查了我的项目的目标类。在/target/test-classes 文件夹中,.exe 文件保持不变。这是正确的 540 KB。在/target/classes文件夹中,.exe文件似乎已被修改。它是 786 KB。发生了什么事以及如何配置它,以便 exe 文件不会像构建期间在/target/test-classes 下那样被修改?
最佳答案
在 pom.xml 中
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>exe</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build>
https://maven.apache.org/plugins/maven-resources-plugin/examples/binaries-filtering.html
关于java - 如何将exe文件添加为Java Maven项目中的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132014/