千家信息网

如何解决idea中项目可以运行,打的jar包运行不了的问题

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容介绍了"如何解决idea中项目可以运行,打的jar包运行不了的问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细
千家信息网最后更新 2024年09月22日如何解决idea中项目可以运行,打的jar包运行不了的问题

本篇内容介绍了"如何解决idea中项目可以运行,打的jar包运行不了的问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

遇到的问题:idea中项目可以运行,打的jar包运行不了

报错原因: 定时任务类中类从上下文拿不到某些Bean,或Netty类那块从上下文拿不到某些Bean;ScheduleConfig配置类中延时10000,通过2,3中打包方式可以运行。

ScheduleConfig 配置文件

package com.bst.framework.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.quartz.SchedulerFactoryBean;import javax.sql.DataSource;import java.util.Properties;/** * 定时任务配置 * * @author ruoyi */@Configurationpublic class ScheduleConfig{@Bean    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource)    {        SchedulerFactoryBean factory = new SchedulerFactoryBean();        factory.setDataSource(dataSource);        // quartz参数        Properties prop = new Properties();        prop.put("org.quartz.scheduler.instanceName", "RuoyiScheduler");        prop.put("org.quartz.scheduler.instanceId", "AUTO");        // 线程池配置        prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");        prop.put("org.quartz.threadPool.threadCount", "20");        prop.put("org.quartz.threadPool.threadPriority", "5");        // JobStore配置        prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX");        // 集群配置        prop.put("org.quartz.jobStore.isClustered", "true");        prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000");        prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");        prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true");        // sqlserver 启用        // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?");        prop.put("org.quartz.jobStore.misfireThreshold", "12000");        prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");        factory.setQuartzProperties(prop);        factory.setSchedulerName("RuoyiScheduler");        // 延时启动        factory.setStartupDelay(10000);        //这块有坑,需要仔细研究        factory.setApplicationContextSchedulerContextKey("applicationContextKey");        // 可选,QuartzScheduler        // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了        factory.setOverwriteExistingJobs(true);        // 设置自动启动,默认为true        factory.setAutoStartup(true);        return factory;    }}

1.idea插件打包 , 这种形式打包很容易遇到bug,各种bean创建不了。

2.mvn打包:

https://blog.csdn.net/qq_36159851/article/details/79699193

mvn命令无法识别:https://www.cnblogs.com/rgever/p/9824992.html

3. build Artifacts 打包 这种可靠一些,指定主类

https://blog.csdn.net/qq_43619459/article/details/108014917

"如何解决idea中项目可以运行,打的jar包运行不了的问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0