如何通过命令行启动 spring-boot 应用程序?

Posted

技术标签:

【中文标题】如何通过命令行启动 spring-boot 应用程序?【英文标题】:How to start up spring-boot application via command line? 【发布时间】:2018-05-29 20:58:23 【问题描述】:

我有一个 spring-boot 应用程序,我需要通过转到文件夹目录并通过命令行启动我的 Web 应用程序来启动它。我有一个名为 Application.java 的类,其中的代码如下。

@SpringBootApplication(scanBasePackages = "com.ubs.tas.topcat.dashboard")
public class Application extends SpringBootServletInitializer 
    private static final Logger LOGGER = LoggerFactory.getLogger(Application.class.getName());
    private static final Class<Application> applicationClass = Application.class;

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 
        return application.sources(applicationClass);
    

    public static void main(String[] args) 
        LOGGER.info("Starting...");
        SpringApplication.run(Application.class, args);
    

我设置了类路径,然后尝试运行命令“java ApplicationUtility”,但收到此错误消息“Could not find the main class: ApplicationUtility. Program will exist.

【问题讨论】:

什么样的项目?例如,如果您使用带有适当插件的 Maven,mvn spring-boot:run 将起作用。你读过the docs吗? 【参考方案1】:

我假设您正在尝试编译应用程序并在不使用 IDE 的情况下运行它。 我还假设您已安装 maven 并将 maven 正确添加到您的环境变量中。

要安装 maven 并将其添加到环境变量,请访问 Install maven 如果您在代理下,请查看 add proxy to maven

通过命令行导航到项目根目录并执行命令

mvn spring-boot:run

CLI 将在配置的端口上运行您的应用程序,您可以像在 IDE 中启动应用程序一样访问它。

注意:这只有在你的 pom.xml 中添加了 maven 时才有效

【讨论】:

如果项目已经构建在战争档案中,那么“项目的根”是什么意思? 应用程序的根目录是包含应用程序的 pom.xml 的文件夹。从找到 .war 文件的位置向后一个文件夹。 对于不使用 Spring Boot 根 POM 的项目,它不起作用,我们需要使用这个 Maven- No plugin found for prefix 'spring-boot' in the current project and in the plugin groups 答案中的全名。 “只有在你的 pom.xml 中添加了 maven”或者除了 maven 本身之外还安装了 spring-boot-maven-plugin 时它是否有效?顺便说一句,“将 maven 添加到您的 pom.xml 中”到底是什么意思?我们应该如何将 maven 添加到 pom.xml 中?【参考方案2】:

您需要先构建 jar 文件。这是从 jar 文件运行主类的语法。

java -jar path/to/your/jarfile.jar fully.qualified.package.Application 

【讨论】:

$ java -jar ./target/springboot-https-seed-1.0-SNAPSHOT.jar ./src/main/java/be/heydari/seed/Application 没有主清单属性,在 ./目标/springboot-https-seed-1.0-SNAPSHOT.jar @PhilipRego,尝试指定 java 文件的路径,而不是类。试试这个 java -jar ./target/springboot-https-seed-1.0-SNAPSHOT.jar be.heydari.seed.Application 您可以通过添加“pom.xml 中的完全限定主类名称”来简化该命令。示例:org.springframework.bootspring-boot-maven-plugincom.myproject.myapp.Application java -jar path/to/your/jarfile.jar (上述pom更改后)【参考方案3】:

如果你使用的是 gradle,你可以使用:

./gradlew bootRun

【讨论】:

假设只有少数用户会使用Gradle,这个答案很有帮助。【参考方案4】:

使用 Maven 运行 Spring Boot 应用

您还可以使用 Maven 插件来运行您的 Spring Boot 应用程序。使用以下示例使用 Maven 插件运行 Spring Boot 应用程序:

mvn spring-boot:run

使用 Gradle 运行 Spring Boot 应用

如果您使用 Gradle,您可以使用以下命令运行 Spring Boot 应用程序:

gradle bootRun

【讨论】:

【参考方案5】:

要运行 spring-boot 应用程序,需要执行一些步骤。

    Maven 设置(如果已经设置则忽略):

    一个。从https://maven.apache.org/download.cgi安装maven

    b.解压maven并保存在C盘(可以保存任意位置,路径位置会相应改变)。

    c。在系统变量中设置 MAVEN_HOME。

    d。为maven设置路径

    将 Maven 插件添加到 POM.XML

    <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

    使用 Maven 构建 Spring Boot 项目

       maven package
    

         mvn install / mvn clean install
    

    使用 Maven 运行 Spring Boot 应用:

        mvn spring-boot:run
    

    [可选]使用 java -jar 命令运行 Spring Boot 应用程序

         java -jar target/mywebserviceapp-0.0.1-SNAPSHOT.jar
    

【讨论】:

使用 mvn package insted of mvn install,mvn install 会将生成的文件复制到本地 maven 存储库 (.m2),这不是首选【参考方案6】:

Spring Boot 为插件提供了 maven。

这样你就可以进入你的项目目录并运行

mvn spring-boot:run

当您使用 spring-boot-devs-tool 并在您更改应用程序时自动重新加载/重新启动时,此命令行将很容易运行。

【讨论】:

对于不使用 Spring Boot 根 POM 的项目,它不起作用,我们需要使用全名,如 Maven- No plugin found for prefix 'spring-boot' in the current project and in the plugin groups 答案。【参考方案7】:

1.使用 java -jar 命令运行 Spring Boot 应用

要从终端窗口中的命令行运行 Spring Boot 应用程序,您可以使用 java -jar 命令。 前提是您的 Spring Boot 应用程序已打包为可执行 jar 文件。

java -jar target/app-0.0.1-SNAPSHOT.jar

2.使用 Maven 运行 Spring Boot 应用

您还可以使用 Maven 插件来运行您的 Spring Boot 应用程序。使用以下命令运行带有 Maven 插件的 Spring Boot 应用程序:

mvn spring-boot:run

3.使用 Gradle 运行 Spring Boot 应用

如果您使用 Gradle,您可以使用以下命令运行 Spring Boot 应用程序:

gradle bootRun

【讨论】:

【参考方案8】:

通过 Maven 配置的 Spring Boot 项目可以在项目源文件夹中使用以下命令运行

mvn spring-boot:run

【讨论】:

【参考方案9】:

您可以从命令行运行 spring-boot 应用程序的一种方法如下:

1) 首先在命令行中进入你的项目目录 [你的项目在哪里?]

2) 然后在下一步中你必须为此创建 jar 文件,这可以这样做

mvnw package [对于 WINDOWS 操作系统 ] 或 ./mvnw package [对于 MAC 操作系统] ,这将 为我们的应用程序创建 jar 文件

3)在target子目录下创建jar文件

4)现在转到目标子目录,因为在其中创建了 jar,即cd target

5) 现在在其中运行 jar 文件。 使用命令java -jar name.jar [name是你创建的jar文件的名字]

然后你就完成了。现在你可以在浏览器中运行项目了,

 http://localhost:port_number

【讨论】:

【参考方案10】:

对于 macOS 用户 如果您使用 maven 配置了您的应用程序 首先,在终端进入你的项目目录 然后简单地运行

./mvnw spring-boot:run

你已经完成了。现在您可以使用端口号访问 localhost。

spring official guide中提到的这个命令。

【讨论】:

【参考方案11】:

我遇到了同样的问题,我通过修改 pom.xml 中的依赖项来解决它。我在最后添加了web

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-**starter**</artifactId>
</dependency>

<dependency>  
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

【讨论】:

以上是关于如何通过命令行启动 spring-boot 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

使用 spring-boot:run 时是不是可以使用 spring-boot 命令行属性?

spring-boot的三种启动方式

spring-boot的三种启动方式

如何从命令行在 iPhone 上启动 OCUnit 测试

spring-boot的三种启动方式

spring-boot的三种启动方式