我自己写了一个java程序,然后写了一个shell命令#!/bin/sh
java -jar WhereMoney_fat.jar然后又在crontab上加上了一个任务
23 12 * * * /home/wjh/jarfile.shjarfile.sh就是我写的shell命令
放在我的目录里面但是时间到了,并没有反映,自动运行任务有开,测试过了
java程序只能在终端运行
谁知道怎么弄啊

解决方案 »

  1.   

    建议先写个hello world的java程序,先在linux运行起来然后用shell调java,先手动执行shell,看能不能运行上面两步都OK的话,再用crontab定时执行shell一步一步来,才能发现错误发生在哪。祝你好运
      

  2.   

    程序已经可以用shell运行了,就是定时出问题
      

  3.   

    crontab会牵涉到环境变量,所以你的shell里应该把用到的环境变量带上
    试试看
    export JAVA_HOME xxxx
    export CLASSPATH yyyy
    ${JAVA_HOME}/java -jar zzzz/WhereMoney_fat.jar
      

  4.   

    在你的SHELL中加上几条echo语句,使用crontab执行的时候,看看echo打印出来了没有,如果有,可能是java命令报了什么错,如果没有,是不是crontab命令有问题以下引自Linux私房菜,不知道对LZ是否有用:
    系统的 crontab 设定 
    这个『 crontab -e 』是针对使用者的 cron 来设计的,如果是『系统的例行性任务』时,该怎么办呢?是否还是需要以 crontab -e 来管理你的例行性命令呢?当然不需要,你只要编辑 /etc/crontab这个档案就可以啦!有一点需要特别注意喔!那就是 crontab -e 这个 crontab 其实是 /usr/bin/crontab 这个执行档,但是 /etc/crontab 可是一个『纯文字文件』喔!你可以 root 的身份编辑一下这个档案哩!
    基本上, cron 这个服务的最低侦测限制是『分钟』,所以『 cron 会每分钟去读取一次 /etc/crontab 与 /var/spool/cron 里面的数据内容』,因此,只要你编辑完 /etc/crontab 这个档案,并且将他储存之后,呵呵!那么 crontab 的设定就自动的会来执行了! 
    注意:在 Linux 底下的 crontab 会自动的帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项,但是某些原因或者是其它的 Unix 系统中,由于 crontab 是读到内存当中的,所以在你修改完 /etc/crontab 之后,可能并不会马上执行,这个时候请重新启动 crond 这个服务吧! 
    /etc/rc.d/init.d/crond restart
      

  5.   

    还是不行啊 。。
    没有运行shell文件
      

  6.   

    启动crontab的是root的用户,你登录运行的是另外一个用户,这样你的环境变量是不同的,写cron的时候,可以切换运行时的用户,这样就应该没问题了,....
      

  7.   

    java -jar WhereMoney_fat.jar 也写成绝对路径看看