将没有web项目的springboot打包到可运行的Jar中,并由java-Jar运行,但@Scheduled方法不起作用
我正在构建一个没有web服务器的SpringBoot项目,因为我不需要它。我使用将没有web项目的springboot打包到可运行的Jar中,并由java-Jar运行,但@Scheduled方法不起作用,java,spring-boot,jar,scheduler,Java,Spring Boot,Jar,Scheduler,我正在构建一个没有web服务器的SpringBoot项目,因为我不需要它。我使用terminaljava-jar)运行了它 我用注解@Schedule编写了一些方法,比如: @Scheduled(initialDelay = 1000, fixedRate = 10000) public void goGetAll() { log.info("HELLO I AM RUNNING THIS SCHEDULE "); } 当我试图通过eclipse运行这个项目时,
terminal
java-jar)运行了它
我用注解@Schedule编写了一些方法,比如:
@Scheduled(initialDelay = 1000, fixedRate = 10000)
public void goGetAll() {
log.info("HELLO I AM RUNNING THIS SCHEDULE ");
}
当我试图通过eclipse运行这个项目时,执行的输出是
就像这样:
下面是另一种情况,将此项目打包到jar并通过cmd运行它
这是我的主要方法
public static void main(String[] args) {
System.out.println("main run");
SpringApplication.run(MyClass.class, args);
System.out.println("main run2");
}
我可以在屏幕上看到main run我建议使用
println
而不是log.info
。那就行了。这是我朋友的答案~
他建议我查一下这个网站
我发现这个web使用mvn cmd将项目打包到jar,然后我按照它的方式打包,我发现ide包jar和mvn包jar在内部是不同的
左边是mvn包jar,右边是eclipse包jar,
这里的结构不同,这就是原因,
我运行java-jar到mvn包jar,然后所有schedule system.out.println msg成功显示。不起作用实际上我认为关于“main run2”的内容没有显示可能意味着我的spring boot没有成功初始化,然后我的朋友为我找到了一个可能正确的解决方案,我尝试了它,然后@schedule run will,我稍后将分享~~~