Java 由于标头不正确,未执行Sh脚本

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

我正在使用mvn clean install命令生成一个.jar文件。这个jar文件包含一个sh脚本,该脚本应该移动到/tmp,然后用于从pdf文件生成图像

编辑:文件未真正移动。它是在my/tmp中从.jar创建的

.jar文件是从windows生成的,但在redhat linux生产服务器上使用

有时,脚本无法工作,因为使用vim并键入:%时,其标题在十六进制中似乎不正确!xxd

在我的脚本的正确版本中,第一行如下所示:

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>