我有一个Spring Boot JAR应用程序。当我运行它时,没有浏览器自动显示https://localhost:8080/
.但是手动键入提到的 URL 工作正常,并且应用程序运行。
@SpringBootApplication
@ImportResource({ "classpath:applicationContext.xml" })
public class StockMaintenanceSystemApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) throws Exception {
SpringApplication.run(StockMaintenanceSystemApplication.class, args);
}
}
我需要在任何地方设置URL(https://localhost:8080/)
吗?如果没有,请更正我的代码。
当您构建 jar 文件并运行它时,它不会自动为您打开浏览器。在服务器环境中部署时使用文件 jar,这与你仍然习惯的开发人员环境完全不同,当你使用 IDE 时,你的工作是只需单击"运行按钮",IDE 就会构建 jar 文件,运行它并自动为你打开浏览器。
这里的解决方案是您可以编写执行 shell 命令的函数,并在main
函数上调用它。可以chrome.exe localhost:8080
shell 命令
如果我理解正确,您的意思是当您启动 Spring 启动应用程序时浏览器不会打开新选项卡。
如果是这种情况,它不应该打开一个新选项卡,它只是在您的 PC 上启动服务,您需要手动导航到该地址。这根本不是弹簧靴做的事情。
在运行应用程序后打开浏览器是IDE
的责任。仅当您将应用程序打包为WAR
文件、配置应用程序服务器(如 Tomcat
)并通过 IDE 重新启动容器时,IDE 才能打开浏览器。
因此,如果将应用程序打包为JAR
文件,则需要打开Web浏览器并键入所需的链接(localhost:8080
)。但是有一些技巧可以应对这种情况。
我解决了我的问题。
import java.io.IOException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource({ "classpath:applicationContext.xml" })
public class StockMaintenanceSystemApplication {
public static void main(String[] args) throws IOException {
SpringApplication.run(StockMaintenanceSystemApplication.class, args);
openHomePage();
}
private static void openHomePage() throws IOException {
String url = "http://localhost:8080/";
Runtime rt = Runtime.getRuntime();
rt.exec("rundll32 url.dll,FileProtocolHandler " + url);
}
}