java - 如何将exe文件添加为Java Maven项目中的资源?

标签 java maven

背景:我有一个 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/

相关文章:

java - response.sendredirect 中的空指针异常

java.lang.NoClassDefFoundError : Failed to link net/glxn/qrgen/javase/QRCode

java - 去除空白 ascii 字符

java - iText/Swing : Breaking text in a box

java - 将 JAR 文件作为依赖项添加到没有其相关 JAR 的项目中

java - "compile project"的东西在发布到maven repository时不能带入aar

maven - 如何将Maven插件转换为Gradle插件(maven-surefire-puglin)?

java - 如何防止 cxf-codegen-plugin 为所有 wsdl 文件生成源

java - Spring 如何从类路径中找到 XSD 文件

java - 如何使用pdfbox获取字段的位置?