Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaMaven项目中添加exe文件作为资源?_Java_Maven - Fatal编程技术网

如何在JavaMaven项目中添加exe文件作为资源?

如何在JavaMaven项目中添加exe文件作为资源?,java,maven,Java,Maven,背景:我有一个exe文件,我想从JavaMaven项目复制到用户的主目录中。在我的项目完成运行后,我将从其主目录中删除此exe文件。我需要将此exe文件用作第三方资源,以便执行我需要为此项目执行的操作 问题: 我已经在src/test/resources文件夹和src/main/resources文件夹中添加了exe文件。当我用maven构建项目并运行测试用例时,exe文件被正确复制和删除 但是,当我运行Java项目时,exe文件无法运行。我收到一个错误,显示:此版本的xxx.exe与您正在运行

背景:我有一个exe文件,我想从JavaMaven项目复制到用户的主目录中。在我的项目完成运行后,我将从其主目录中删除此exe文件。我需要将此exe文件用作第三方资源,以便执行我需要为此项目执行的操作

问题: 我已经在src/test/resources文件夹和src/main/resources文件夹中添加了exe文件。当我用maven构建项目并运行测试用例时,exe文件被正确复制和删除


但是,当我运行Java项目时,exe文件无法运行。我收到一个错误,显示:此版本的xxx.exe与您正在运行的Windows版本不兼容。检查计算机的系统信息,查看是否需要x86(32位)或x64(64位)版本的程序,然后与软件发行商联系

测试文件夹和主文件夹引用不同的资源文件夹,这就是为什么测试文件夹成功而主文件夹失败的原因。 我检查了我项目的目标类。在/target/test classes文件夹中,.exe文件保持不变。它是540KB,这是正确的。在/target/classes文件夹中,.exe文件似乎已被修改。它是786KB。发生了什么,我如何配置它,以使exe文件不会像构建期间在/target/test类下那样被修改?

在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>

org.apache.maven.plugins

imo:不是。首先,如果你想要一个Windows应用程序,Java不是你应该使用的语言。您似乎遇到的问题是操作系统的版本。如果您不明白在64位操作系统上使用32位exe(反之亦然)可能会导致麻烦,那么您不应该尝试编写任何类似的东西—可执行文件一开始是32位的。我有一个64位操作系统,没有问题。我只是想知道为什么要修改可执行文件?“此版本的xxx.exe与您正在运行的Windows版本不兼容。”->您将此翻译为:“没有问题”?ow..key.如果不修改文件,则不会出现该错误消息。如果我的机器上运行了可执行文件,那么就没有问题,当我运行测试用例时也没有问题。当我运行Java项目时,只有一个问题,因为它引用的是与测试用例不同的文件夹。我的主要问题是:为什么要修改可执行文件,我怎样才能让它不被修改?只是“运行Java项目”不会复制文件,除非您编写了实际复制它的代码。你试过调查那件事吗?