如何通过命令行启动 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 中的完全限定主类名称”来简化该命令。示例:如果你使用的是 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 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章