Run simple Java class file with crontab

风流意气都作罢 提交于 2019-12-11 16:26:18

问题


I'm trying to run a simple java helloworld program with crontab. I made the following java code: helloworld.java:

class HelloWorld { 
     public static void main (String args[]) {
         System.out.println("Hello world");
   }
}

I then try to run this from a crontab in the following sequence:

  1. crontab -e
  2. At the end i insert this line 0,7,10,15,30,46,50,55,59 * * * * root /usr/bin/java /home/shivajividhale/cloudOccular/HelloWorld >/dev/null 2>&1

However, I am not able to see the helloworld putput in the syslog. Is everything correct? How do I check if the class file is being executed or not. I tried printing the output to a text file with the time on it as well. But nothing is being done on the file.

Running the file normally java HelloWorld yields proper output. I also made sure the crontab ends with a new line.

I just want to get started with having a class file run by the crontab. Oher posts discuss about crontab running bash scripts, I just want to run just this simple program. I just want to print out Hello World along with the time to ensure program execution at the defined intervals. Any help?


回答1:


You should not provide a full path when trying to execute a class with "java". The "java" command expects to receive just the class name as an argument.

That's why this works properly:

java HelloWorld

But this does not:

/usr/bin/java /home/shivajividhale/cloudOccular/HelloWorld

To make the latter work, you need to provide just the class name, and additionally a "classpath" so that Java knows where to find that class. You can use the "-cp" option to provide the classpath.

Try this:

/usr/bin/java -cp /home/shivajividhale/cloudOccular/ HelloWorld



来源:https://stackoverflow.com/questions/30631213/run-simple-java-class-file-with-crontab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!