如何使用定时任务执行一个jar包

平菇虾饺 2014-11-21 01:45:38
一个很白痴的问题:

我写了一个jar包。依赖一些配置文件。
定时任务时我将他们放在服务器上jar包的同级目录jar包是可以访问到的。但是logback.xml却无法被访问到。并且结果乱码
手动执行时全都可以访问。结果不乱码。

我想问问有没有大神知道应该怎么配置:

shell

#! /bin/bash

/export/java/bin/java -jar /export/yupeng.qin/tu2.jar

crontab:

0 1 * * * sh /export/xxx/execute.sh

文件依赖:

-rwxr-xr-x 1 xx xxx 68 Nov 21 13:36 execute.sh
drwxrwxrwx 4 xx xxx 4.0K Oct 11 10:23 JSON
-rw-r--r-- 1 xx xxx 2.0M Nov 18 15:33 listself.log
-rw-r--r-- 1 xx xxx 3.3M Nov 18 15:36 listteam.log
-rw-r--r-- 1 xx xxx 1.4K Nov 17 20:19 logback.xml
drwxr-xr-x 2 xx xxx 12K Nov 21 00:00 logs
-rw-r--r-- 1 xx xxx 25 Oct 27 17:19 proxyip.txt
-rwxr-x--x 1 xx xxx 1.2K Aug 24 22:37 put.sh
-rw-r--r-- 1 xx xxx 16M Nov 20 17:03 tu2.jar
...全文
507 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
平菇虾饺 2014-11-21
  • 打赏
  • 举报
回复
引用 1 楼 magi1201 的回复:
手动的 java -jar /export/yupeng.qin/tu2.jar 程序可以正常执行,也可以读取logback.xml 但是 使用linux定时任务就无法正常执行,读取不到logback.xml 文件吗?
是的。理论上也应该这样的: crontab的默认执行用户是root。也就是说它的默认执行位置是在 /root 下的。 而/root下根本没这个文件。自然是不会被访问掉的。 我的问题再细化一下: 我这么定义有半年多了。半年来一直都能很好的执行因此我也没有去管它。但是它每天都在给我发邮件告诉我找不到这个文件 直到最近需要改版,我就做了一个比较大的改动。却发现程序不跑了。 理论上讲现在的情况是对的:根本找不到文件,更别提运行了。 拿我就不明了: 之前是怎么跑成功的?还是以我的个人权限执行的。并且每天都能跑的很好!另外它跑的时候没法载入logbak.xml。这又是怎么回事?
姜小白- 2014-11-21
  • 打赏
  • 举报
回复
手动的 java -jar /export/yupeng.qin/tu2.jar 程序可以正常执行,也可以读取logback.xml 但是 使用linux定时任务就无法正常执行,读取不到logback.xml 文件吗?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧