Java 文件不使用 crontab 运行

标签 java linux cron

命令“java temp”打印 Hello World。但是当我尝试使用 crontab 运行此命令时,它不起作用。

我在crontab中使用这个命令

*/2 * * * */usr/bin/java -cp/home/parth/javafile/temp

我也试过这个命令

*/2 * * * * root (cd/home/parth/javafile/temp.class ; java temp)

*/2 * * * * root/usr/bin/java -cp/home/parth/javafile/temp

但是这些命令也不起作用。

我还尝试创建脚本文件 .sh 并将 java 命令放入脚本中,然后使用 crontab 运行该脚本。但那个也不起作用。

我认为我在使用命令时做错了什么,但我不明白它到底是什么。

最佳答案

问题是,您的用户的 shell 没有运行命令。运行 CRON 作业的用户正在运行命令。在这种情况下,您永远不会看到打印到终端的输出。一种选择是将输出重定向到文件,例如:

*/2 * * * * /usr/bin/java -cp /home/parth/javafile/ temp >> /path/to/log/file 2>&1

末尾的位 2>&1 将标准错误重定向到与标准输出相同的位置。这样错误也会打印到日志文件中。

2 是标准错误的文件描述符

> 用于重定向输出

&是文件描述符的符号

1 是标准输出的文件描述符

关于Java 文件不使用 crontab 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41049262/

相关文章:

linux - 无法再更新我的 Ubuntu 12.04 : python 2. 7 循环依赖项?

java - 从 Java 和 CLI 向 crontab 添加 cron 表达式时出现问题

java - 每当有键匹配时减去两个映射的值?

java - 在 Spring Boot 中实现模型继承有奇怪的数据存储库行为

java - 重组或重新组装 EJB 2 EAR 以在 Eclipse 中进行调试

c - C程序中的ASM代码导致段错误

linux - 将 busybox microcom 中的字符回显到标准输出

linux - 如何在 Fedora 系统中每小时运行一个 Perl 脚本。我有一个 perl 脚本,它将检查 IP 中的端口是否打开

docker - Docker 上 Cron 的最佳实践

java - 从 JAR 文件中读取目录内容