gpt4 book ai didi

java - 使用 init.d 运行 SpringBoot Jar 时出错

转载 作者:行者123 更新时间:2023-12-03 03:40:23 24 4
gpt4 key购买 nike

我有一个 SpringBoot 应用程序,为此我使用 gradle :myapp:jar生成一个可执行的jar。此外,我还不得不使用 chmod 755 myapp.jar使 jar 可执行。

这是生成 jar 的 gradle 代码,as described here :

Spring 启动{
可执行=真
}

springBoot {
executable = true
}

jar {
baseName = 'myapp'
version = '0.1.0'
manifest {
attributes "Main-Class": "eu.myapp.Application"
}

from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}

然后我创建一个指向 init.d 的符号链接(symbolic link), as described here为了使用开始/停止/状态。我正在执行的创建符号链接(symbolic link)的命令是这样的:
sudo ln -fs myjar.jar /etc/init.d/myjar

在此之后,我可以这样做:
sudo /etc/init.d/myapp start

问题是,当我执行此命令时,出现以下错误:
/etc/init.d/myapp: 1: /etc/init.d/myapp: PK: not found
/etc/init.d/myapp: 2: /etc/init.d/myapp�z�H: not found
/etc/init.d/myapp: 3: /etc/init.d/myapp: Syntax error: ")" unexpected

在线查找, it appears to be related to a shebang issue ,可以通过添加 #!/bin/bash 来修复在文件的开头。但是,由于我正在运行 .jargradle 生成, 我需要在哪里添加这一行?或者,我该如何解决上述错误?

最佳答案

jar任务不会生成适合通过 init.d 启动的完全可执行的 jar。相反,您需要运行 bootRepackage Spring Boot 的 Gradle 插件提供的任务,您还需要对其进行配置以生成完全可执行的 jar。为此,请将以下内容添加到您的 build.gradle :

springBoot {
executable = true
}

关于java - 使用 init.d 运行 SpringBoot Jar 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com