日期:2014-05-18  浏览次数:20698 次

java 定时器在windows 中能运行 但在 linux 中不能运行
本帖最后由 JackieLiuLixi 于 2013-11-21 09:20:57 编辑
我在JEE 项目中用 jdk 自带的 TimerTask 写了个定时器。让代码在每天的 0:20 能自动生成 csv 文件,然后把 csv 文件上传到 ftp中。该定时器在 windows 测试环境下能够正常运行,但是将系统部署到红帽 linux 环境后,就不执行了。求指点。
java 定时器 linux windows

------解决方案--------------------
1. 有报错信息否?
2. Linux系统的时间与windows时间是否一致?
3. java环境配置是否正常,使用的服务器是什么,是否配置正确。

可以排查下。
------解决方案--------------------
那除了定时器的代码,其他代码有写日志吗?
如果没有那就是你整个都没执行和定时器没关系。你最好看下启动日志
------解决方案--------------------
还有你生成csv的路径会不会有问题,如果绝对路径会有问题
------解决方案--------------------
引用:
Quote: 引用:

没有报错信息,也没输出日志信息。linux 和 windows 时间一致,配置也一样。就是感觉定时器代码没有执行。不知是不是 windows 和 linux 有什么区别等等。

定时器之外的东西都正常运行。与定时器相关的监听器也正常启动


如果方便的话,把相关代码贴出来看看?
或者可以考虑在定时器处理类(或者定时器调度类)关键步骤处,打印些日志,跟踪下到底是为什么没执行。

------解决方案--------------------
linux下jdk版本有可能有问题。
------解决方案--------------------
先不要输出文件  先在定时器里面打印语句看看能不能打印出来

然后看看csv输出的路径名是否正确

然后看看是否有权限读写文件

然后看看是不是有隐藏文件
------解决方案--------------------
tomcat是否启动成功!
jdk有没有问题
java能跨平台 windows跟liunx没区别
我们现在的定时任务都能跑
不过是用的spring集成的quartz