发生这种情况是因为Windows Shell(cmd)具有一个功能:它尝试向exe
您正在运行的命令行添加扩展名,’bat’,’cmd’。找到第一个匹配项(即文件系统中确实存在的文件)后,它将运行它。
如果是Maven,您将拥有mvn
无法在Windows和Windows批处理文件’.bat’上执行的Unix Shell脚本。命令提示符将“ .bat”添加到您在命令提示符中键入的“ mvn”,看到该文件存在并运行它。
当您从Java运行进程时,您没有外壳程序,因此没有人做此工作。我建议您检查操作系统并按操作系统保留命令。如果要清除解决方案,请创建资源文件cmd.properties:
mvn.windows = mvn.bat
mvn.unix = mvn
现在使用系统属性检查OS,os.name
并使用中的数据创建命令cmd.properties
。
另一种解决方案是cmd /c
在Windows 上运行命令,在UNIX上运行’/ bin / sh -c’,但这并不能简化任何事情,因此我避免这样做。