Windows x86_64: "node.exe不是一个有效的Win32应用程序"

3

在amd64 windows和maven-frontend-plugin上使用amd64 jdk存在问题:

运行mvn compile时,它会获取预期的amd64版本node.exe,然后尝试运行npm.cmd install来安装依赖项。

问题是在此之后,一切都失败了:

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.0:npm (npm install) on project {projectName}: Failed to run task: 'npm install' failed. java.io.IOException: Cannot run program "D:\Projects\job\projectPath\target\node\node.exe" (in directory "D:\Projects\job\projectPath\src\main\webapp"): CreateProcess error=193, %1 is not a valid Win32 application -> [Help 1]

如果我运行x86 jdk,则不会失败并且正常构建。

问题是出在我的电脑上,还是node.js、maven-frontend-plugin或maven本身存在bug?


@Ivan,是的,这与Java无关,除了它是一个Java项目外。该项目在64位JDK上无法构建,在32位JDK上安装在amd64 Windows上却可以完美运行。失败的部分确实是在JavaScript/Node.js中。 - undefined
请问您能为maven-frontend-plugin添加配置吗?当构建失败时,D:\Projects\job\projectPath\target\node目录下有哪些文件? - undefined
你试过将 <goal>npm</goal> 改为 <goal>npm.cmd</goal> 吗? - undefined
@PeterCordes,npm.cmd在x86和x86_64之间没有区别,同时无法运行程序“D:\ Projects \ job \ projectPath \ target \ node \ node.exe”是错误信息中的问题。 - undefined
@Ivan 是的,我做了;没有任何改动。再次测试,在 x86 上运行正常。 - undefined
显示剩余7条评论
2个回答

1

我在我的Windows 10上遇到了同样的问题。问题是由于我Maven仓库中的node.exe文件损坏导致的。我不得不从我的项目和.m2仓库中都删除node文件夹:

  1. 从你的Maven仓库中删除这个文件夹 -> .m2\repository\com\github\eirslett
  2. 从你的应用程序中删除这个文件夹 -> \target\node

在删除了这两个文件夹之后,执行maven clean命令。

mvn clean package

希望这能有所帮助。

0
我所做的就是简单地用程序文件中的node.exe文件覆盖maven安装时生成的node.exe文件。它有效!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接