# 19\. 运行你的应用程序 将应用程序打包成jar并使用嵌入式HTTP服务器的最大优点之一就是可以按照你想用其他任何方式运行应用程序。调试Spring Boot应用程序也很容易; 您不需要任何专门的IDE插件或扩展。 > 本节仅涵盖基于jar的打包,如果您选择将应用程序打包为war文件,则应参考您的服务器和IDE的文档。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#191-从ide运行)19.1 从IDE运行 您可以从IDE中运行 Spring Boot 应用程序作为一个简单的Java应用程序,但是首先需要导入项目。 导入步骤将根据您的IDE和构建系统而有所不同。 大多数IDE可以直接导入Maven项目,例如Eclipse用户可以从File菜单中选择import...→Existing Maven Projects。 如果您无法将项目直接导入到IDE中,则可以使用构建插件生成IDE元数据。 Maven包括Eclipse和IDEA的插件; Gradle为各种IDE提供插件。 > 如果您不小心运行了两次Web应用程序,您将看到“Port already in use”中的错误。 使用STS用户可以使用重新启动按钮而不是运行以确保任何现有实例已关闭。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#192-作为已打包应用程序运行)19.2 作为已打包应用程序运行 如果您使用Spring Boot 的 Maven或Gradle插件创建可执行jar,则可以使用java -jar运行应用程序。 例如: ``` $ java -jar target/myproject-0.0.1-SNAPSHOT.jar ``` 也可以启用远程调试支持运行打包的应用程序。 这允许您将调试器添加到打包的应用程序中: ``` $ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \ -jar target/myproject-0.0.1-SNAPSHOT.jar ``` ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#193-使用-maven-插件)19.3 使用 Maven 插件 Spring Boot Maven 插件包含一个运行目标(goal ),可用于快速编译和运行应用程序。 应用程序以exploded的形式运行,就像在IDE中一样。 ``` $ mvn spring-boot:run ``` 您可能还需要使用一些有用的操作系统环境变量: ``` $ export MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=128M ``` ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#194-使用gradle插件)19.4 使用Gradle插件 Spring Boot Gradlet插件还包括一个bootRun任务,可用于以exploded 形式运行应用程序。 每当导入spring-boot-gradle-plugin时,都会添加bootRun任务: ``` $ gradle bootRun ``` 您可能还想使用这个有用的操作系统环境变量: ``` $ export JAVA_OPTS=-Xmx1024m -XX:MaxPermSize=128M ``` ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#195-热插拔)19.5 热插拔 由于Spring Boot应用程序只是纯Java应用程序,所以JVM热插拔应该是开箱即用的。 JVM热插拔在一定程度上受到可替代的字节码的限制,更完整的解决方案,可以使用 [JRebel](http://zeroturnaround.com/software/jrebel/) 或者 [Spring Loaded](https://github.com/spring-projects/spring-loaded) 项目。 spring-boot-devtools模块还支持快速重新启动应用程序。 有关详细信息,请参阅[第20章“开发人员工具”](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#using-boot-devtools)部分和[热插拔“操作方法”](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#howto-hotswapping)。