crontab定时任务通过脚本执行jar过程中,遇到jar包执行无效的坑

博客讲述了作者在开发一个简单的VPN程序时遇到的问题,该程序需要通过crontab定时任务执行Java jar包。作者发现手动执行脚本可以成功,但在crontab中执行时,Java程序部分不工作。问题在于crontab环境中未设置Java环境变量。解决方案是先执行`source /etc/profile`引入环境变量,然后再运行Java jar命令,问题得到解决。

        写了一个简单的VPN的程序,需求是获取登录用户的ip地址,然后通过添加IPtables规则,达到放行的功能,一切准备就绪了,同时,通过手动执行脚本文件,已经可以实现添加规则了。

        然而让我万万没想到的时,为了方便以后的使用,我选择使用crontab定时任务来,每隔一段时间,执行一次脚本。本来一切的都好好的,结果部署完成以后,我发现最终的结果,和我预期的想法不一样,因为他 -----没有执行java程序!!!

 

        what??我惊呆了。手动可以执行,为什么定时无法执行,难到是我代码写错了?可是,明明是可以执行的啊,难到是脚本没有执行吗?可是经过在脚本中添加其他命令,发现是可以执行的,但是当命令,涉及到java文件的执行结果的时候,都是无法成功的。也就是说错误出在了jar的执行。经过检查,java代码没有写错,执行路径也没有写错。在网上查了很多资料,然后,发现执行jar包之前,要先引入环境变量:

引入之前:

java -jar /bbb/vpnTest.jar

引入环境变量之后:

source /etc/profile

java -jar /bbb/vpnTest.jar

 然后执行,就没有问题了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值