【发布时间】:2016-08-20 11:53:23
【问题描述】:
我有一个 SpringBoot 应用程序,为此我使用gradle :myapp:jar 来生成一个可执行的 jar。此外,我还必须使用chmod 755 myapp.jar 来使jar 可执行。
这是生成jar的gradle代码as described here:
springBoot { 可执行=真 }
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 的符号链接 as described here 以便使用启动/停止/状态。我正在执行的创建符号链接的命令是这样的:
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来解决。但是,由于我正在运行由gradle 生成的.jar,我需要在哪里添加这一行?或者,我该如何解决上述错误?
【问题讨论】:
标签: java gradle jar spring-boot init.d