Java 由于标头不正确,未执行Sh脚本
我正在使用mvn clean install命令生成一个.jar文件。这个jar文件包含一个sh脚本,该脚本应该移动到/tmp,然后用于从pdf文件生成图像 编辑:文件未真正移动。它是在my/tmp中从.jar创建的 .jar文件是从windows生成的,但在redhat linux生产服务器上使用 有时,脚本无法工作,因为使用vim并键入:%时,其标题在十六进制中似乎不正确!xxd 在我的脚本的正确版本中,第一行如下所示:Java 由于标头不正确,未执行Sh脚本,java,bash,maven,Java,Bash,Maven,我正在使用mvn clean install命令生成一个.jar文件。这个jar文件包含一个sh脚本,该脚本应该移动到/tmp,然后用于从pdf文件生成图像 编辑:文件未真正移动。它是在my/tmp中从.jar创建的 .jar文件是从windows生成的,但在redhat linux生产服务器上使用 有时,脚本无法工作,因为使用vim并键入:%时,其标题在十六进制中似乎不正确!xxd 在我的脚本的正确版本中,第一行如下所示: 0000000: 2321 2f62 696e 2f62 6173 6
0000000: 2321 2f62 696e 2f62 6173 680a 5044 4654 #!/bin/bash.PDFT
在不正确的版本中,您可以看到:
0000000: 2321 2f62 696e 2f62 6173 680d 0a50 4446 #!/bin/bash..PDF
如果没有十六进制,文件的开头显然如下所示:
#!/bin/bash
PDFTOPPM=pdftoppm
CONVERT=convert
LOG=/tmp/pdf2imgSh.log
有人遇到过这个问题吗?
如何强制在windows上安装maven,以便在脚本中正确生成jar而不损坏头
这个问题对我来说有点模糊,所以请不要犹豫要求编辑或精确
提前感谢。Windows版本和Linux版本的行尾不同。生成脚本的代码使用特定于平台的行尾终止符0A vs 0D 0A
您可以在不更改代码的情况下更改行尾分隔符。如前所述,设置默认的行尾终止符。配置系统属性可能会起作用,否则您可能需要编辑mvn脚本。版本因行尾不同而有所不同Windows版本和Linux版本。生成脚本的代码使用特定于平台的行尾终止符0A vs 0D 0A
您可以在不更改代码的情况下更改行尾分隔符。如前所述,设置默认的行尾终止符。配置系统属性可能有效,否则您可能需要编辑mvn脚本。在@h22 answer和@SubOtpimal注释之后,我认为您可以强制maven对特定文件的EOL进行编码 将此插件添加到pom.xml 使用您自己的文件或文件夹更改路径。它递归地工作。小心别忘了那条路,否则它会把你的罐子打碎的。
这可能会奏效。希望这有帮助 在@h22 answer和@SubOtpimal注释之后,我认为您可以强制maven对特定文件的EOL进行编码 将此插件添加到pom.xml 使用您自己的文件或文件夹更改路径。它递归地工作。小心别忘了那条路,否则它会把你的罐子打碎的。
这可能会奏效。希望这有帮助 这是一个编码问题。您是如何生成该文件的?你用什么插件/代码?就像你有时说的。如果您在Windows上使用Git,请查看配置设置和。这是一个编码问题。您是如何生成该文件的?你用什么插件/代码?就像你有时说的。如果您在Windows上使用Git,请查看配置设置和。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>ant-test</id>
<phase>package</phase>
<configuration>
<tasks>
<fixcrlf srcdir="${basedir}/src/main/resources/yourfilepath" eol="unix" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>