【问题标题】:How to start up spring-boot application via command line?如何通过命令行启动 spring-boot 应用程序?
【发布时间】: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吗?

标签: java spring-boot


【解决方案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 应用程序,需要执行一些步骤。

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

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

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

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

      d。为maven设置路径

    1. 将 Maven 插件添加到 POM.XML

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

    2. 使用 Maven 构建 Spring Boot 项目

         maven package
      

           mvn install / mvn clean install
      
    3. 使用 Maven 运行 Spring Boot 应用:

          mvn spring-boot:run
      
    4. [可选]使用 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 并在您更改应用程序时自动重新加载/重新启动时,此命令行将很容易运行。

    【讨论】:

    【解决方案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>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-06-03
              • 2017-03-08
              • 2022-07-08
              • 2014-12-07
              • 2012-02-03
              • 2015-09-14
              • 2011-07-17
              相关资源
              最近更新 更多