免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5023 | 回复: 4
打印 上一主题 下一主题

cron 执行java程序失败 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-28 10:08 |只看该作者 |倒序浏览
本帖最后由 yanzhiying95599 于 2011-12-28 10:09 编辑

我想用cron来定制 每分钟执行一次java 程序,弹出一个小窗口,提示用户休息。java程序单独可以执行,但是加到cron中却执行不了。
crontab -l

* * * * * /home/jill/my-create-software/rest/rest.sh
* * * * * /home/jill/my-create-software/rest/hello.sh
设定了每分钟执行一次。

rest.sh 就是不执行。 hello.sh正常执行,每分钟向文件中输出一句话。
$sudo service cron restart
和 机器重启都用过了,就是不执行。

查看cron.log
$tail /var/log/cron.log
Dec 28 10:08:01 jill-desktop CRON[21272]: (jill) CMD (/home/jill/my-create-software/rest/rest.sh)
Dec 28 10:08:01 jill-desktop CRON[21270]: (CRON) error (grandchild #21272 failed with exit status 1)
Dec 28 10:08:01 jill-desktop CRON[21270]: (CRON) info (No MTA installed, discarding output)

shell 脚本
hello.sh
cd /home/jill/my-create-software/rest
echo "hello" >> echo.log

rest.sh:
#!/bin/bash
cd /home/jill/my-create-software/rest
/home/jill/tac/jdk/bin/java -jar myrest.jar -cp .:/home/jill/tac/jdk/lib/tools.jar:/home/jill/tac/jdk/lib/dt.jar

其中
/home/jill/tac/jdk/是jdk的安装路径

在命令行都可以正常执行
$./rest.sh 可以正常执行,弹出一个桌面窗口,提示用户要注意休息。

在cron中试了输出字符串到文件,是可以的。所以问题是java的,但是为什么呢?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2011-12-28 10:12 |只看该作者
java的那个脚本里面,把java执行需要用的的环境变量,比如JAVA_HOME啥的,写进去.

论坛徽章:
0
3 [报告]
发表于 2011-12-28 11:26 |只看该作者
问题解决了。
cron中 执行一个java 桌面程序,有2 点需要注意:
1, cron 不加载 环境变量,所以 java 命令中 要指明 classpath
/home/jill/tac/jdk/bin/java -jar myrest.jar -cp .:/home/jill/tac/jdk/lib/tools.jar:/home/jill/tac/jdk/lib/dt.jar
2,桌面程序 需要指明 DISPLAY
先查看系统的DISPLAY
$echo $DISPLAY
:0.0
然后加入到shell中。

最后我的rest.sh 如下:
#!/bin/bash
cd /home/jill/my-create-software/rest
export DISPLAY=:0.0
/home/jill/tac/jdk/bin/java  -jar myrest.jar -cp .:/home/jill/tac/jdk/lib/tools.jar:/home/jill/tac/jdk/lib/dt.jar

评分

参与人数 1可用积分 +5 收起 理由
chenyx + 5 赞一个!

查看全部评分

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
4 [报告]
发表于 2011-12-28 12:34 |只看该作者
不错。

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
5 [报告]
发表于 2011-12-29 09:14 |只看该作者
不错的解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP