jul*_*ien 4 java jar gradle spring-boot ubuntu-14.04
我遵循了这个教程:
作为init.d服务
可执行jar具有通常的启动,停止,重启和状态命令.它还将在通常的/ var/run目录中设置一个PID文件,并默认登录到通常的/ var/log目录.
你只需将你的jar符号链接到/etc/init.d就像这样
假设您在/ var/myapp中安装了Spring Boot应用程序,要将Spring Boot应用程序安装为init.d服务,只需创建一个符号链接:
Run Code Online (Sandbox Code Playgroud)$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp然后启动服务:
Run Code Online (Sandbox Code Playgroud)/etc/init.d/myapp start
当我这样做时,就像在那里描述的那样,我在Ubuntu 14.04控制台中遇到以下错误:
ubuntu@spring:/var/myapp$ /etc/init.d/myapp start
-bash: /etc/init.d/myapp: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)
你不能以这种方式运行jar,因为它只是一个二进制文件.你必须使用已安装的java运行它(正如在MrPsion的回答中提到的那样)
java -jar /var/myapp/myapp.jar
Run Code Online (Sandbox Code Playgroud)
但是你不能为这样的命令创建符号链接.您可以使用上面的命令创建一个bash脚本,使其可执行并为此脚本创建一个符号链接.
或者,在Ubuntu中,您可以使用binfmt-support.只需先安装它
sudo apt-get install binfmt-support
Run Code Online (Sandbox Code Playgroud)
然后让你的jar可执行
chmod a+x myapp.jar
Run Code Online (Sandbox Code Playgroud)
然后你可以运行它(并用于符号链接),如下所示:
/var/myapp/myapp.jar
Run Code Online (Sandbox Code Playgroud)
更新:
由于您有一个Spring Boot应用程序,请检查您的jar是否在executable属性设置为true的情况下构建
springBoot {
executable = true
}
Run Code Online (Sandbox Code Playgroud)
这应该让你以你想要的方式运行你的jar,whitout使它成为可执行文件或需要任何额外的库.
另外,根据评论,您正在使用的插件版本尚不支持此功能.您必须更新插件版本才能获得可执行jar.根据插件源和提交历史,您需要至少1.3版本
小智 6
答案不正确,您确实可以使用 init.d 将 Spring Boot 应用程序 jar 作为服务启动。正如Stanislav所指出的,甚至还有一个春季教程解释了如何做到这一点: https //docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
问题可能出在您的 Maven 文件中。我遇到了同样的问题并解决了它,将以下内容添加到我的 maven 文件中:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.7.RELEASE</version>
<configuration>
<executable>true</executable>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
详细说明在这里:https : //springjavatricks.blogspot.com/2017/11/installing-spring-boot-services-in.html
| 归档时间: |
|
| 查看次数: |
4819 次 |
| 最近记录: |