用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎么做???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎么做???相关的知识,希望对你有一定的参考价值。

这个是我在网上找的不知道是不是你要的:

java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了。设置定时任务很简单,用Timer类就搞定了。一、延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:
package test;
import java.util.Timer;
public class TimeTaskTest
public static void main(String[] args) Timer timer = new Timer();
timer.schedule(new Task(), 60 * 1000);


解释一下上面的代码。上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务。很简单吧:先new一个Timer对象,然后调用它的schedule方法,这个方法有四个重载的方法,这里我们用其中一个,
public void schedule(TimerTask task,long delay)
首先,第一个参数第一个参数就是我们要执行的任务。这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里 面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。Task类的代码如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask public void run()

System.out.println("定时任务执行");


我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。第二个参数第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。二、循环执行设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schedule方法的是另一个重载函数public void schedule(TimerTask task,long delay,long period)
前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数(看来java里涉及到时间的,跟这个long是脱不了干系了),比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。三、指定执行时间既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schedule四个重载的方法还没用完呢。用下面这个就OK了:
public void schedule(TimerTask task,Date time)
比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。schedule最后一个重载的方法是public void schedule(TimerTask task,Date firstTime,long period)
没必要说什么了吧:)四、j2ee中的定时任务在实际的项目中,往往定时任务需要对web工程中的资源进行操作,这样一来,用上面的单个程序的方式可能就有点力不从心了,因为很多web工程的资源它操作不到。解决的办法是,使用Servlet,把执行定时任务的那些代码放到Servlet的init()函数里就可以了,这个easy,就没有必要再写示例代码了吧
参考技术A 单击开始,单击所有程序,指向附件,指向系统工具,然后单击任务计划 参考技术B 2楼正解,还要把你的java程序做成一个批处理追问

就是做成批处理后 执行不了,批处理怎么做?

追答

新建个记事本,然后扩展名改成.bat,再把java的class文件跟批处理一起放到个文件夹里java 工程名

参考技术C 是打了一个jar包吗,定时任务使用 quartz写的吗 ,请详细的描述

如何用javac 和java 编译运行整个Java工程

参考技术A

  前言 本文教你怎么用javac和java命令 以及如何利用脚本(shell或bat)方便处理 并用简单的实例展示这些用法

  IDE是把双刃剑 它可以什么都帮你做了 你只要敲几行代码 点几下鼠标 程序就跑起来了 用起来相当方便 你不用去关心它后面做了些什么 执行了哪些命令 基于什么原理 然而也是这种过分的依赖往往让人散失了最基本的技能 当到了一个没有IDE的地方 你便觉得无从下手 给你个代码都不知道怎么去跑 好比给你瓶水 你不知道怎么打开去喝 然后活活给渴死

  之前用惯了Myeclipse Java文件编译运行的命令基本忘得一干二净 现在项目出了原型 放到服务器上去测试 SSH一登陆上服务器就傻眼了 都是命令行 以前程序图标什么的都成了浮云 程序放上去了不知道怎么去编译运行 只能补补课了 下面做下补课笔记

  一 javac命令javac 用于编译Java文件 格式为 java [options]  [sourcefiles] [@files]其中 options 命令行选项 sourcefiles 一个或多个要编译的源文件 @files 一个或多个对源文件进行列表的文件 有时候要编译的文件很多 一个个敲命令会显得很长 也不方便修改 可以把要编译的源文件列在文件中 在文件名前加@ 这样就可以对多个文件进行编译 对编译一个工程很有用 方便 省事

  有几个比较重要的选项 d 用于指定编译成的class文件的存放位置 缺省情况下不指定class文件的存放目录 编译的class文件将和源文件在同一目录下 classpath 可以简写成 cp 用于搜索编译所需的class文件 指出编译所用到的class文件的位置 如jar zip或者其他包含class文件的目录 指定该选项会覆盖CLASSPATH的设定 sourcepath用于搜索编译所需的源文件(即java文件) 指定要搜索的源文件的位置 如jar zip或其他包含java文件的目录 需要注意windows下和linux下文件路径分隔符和文件列表(即 classpath和 sourcepath指定的文件)分隔符的区别 windows下文件路径分隔符用 \\ 文件列表分隔符用分号 linux下文件路径分隔符用 / 文件列表分隔符用冒号 二 java命令java 用于执行程序 格式如下 java [options] classfile options 命令行选项 一般用于 classpath 指定要执行的文件所在的位置以及需要用到的类路径 包括jar zip和class文件目录 会覆盖CLASSPATH的设定三 脚本如果要敲的命令很长 每次要编译运行的时候都要重新敲一遍 这是一件很痛苦的事情 所以用脚本可以大大方便你的工作量 在linux下用shell脚本 windows下用bat批处理程序 因为是在linux下 我这里只是简单介绍一下shell 关于bat批处理程序的语法自己百度一下 不难

   开头linux有很多不同的shell 通常使用bash(bourne again shell) 程序必须以下面的行开始 #!/bin/sh #!用来告诉系统用后面的参数来执行程序 这里使用的是/bin/sh要使你的脚本能够执行 还必须让这个文件有可执行权限 使用下面命令更改文件权限 chmod +x filename 注释以#开始的句子表示注释 一直到这行结束 多写注释有利于以后重新看的时候知道自己在做什么 变量shell的脚本的变量都是字符串 不用申明类型 定义的时候直接  变量=值  即可 用到变量的的时候用 $变量 或者 $变量 echo命令用于打印 举个例子 #!/bin/sh # 定义变量words 值为hello world words= hello world # 打印变量words的值echo $words 命令shell脚本里面可以直接任意使用linux命令 要用到什么命令直接敲进去即可 记住一些常用的命令 cd                   打开目录ls l                 显示目录信息rm fr              递归删除目录及下面的文件 不提示信息mkdir              创建目录pwd                显示当前路径kill pid        强制杀掉某个进程号的进程pkill                杀掉某个名字的进程ps aux            显示运行进程信息netstat pan 查看网络端口监听情况四 例子下面是文件pile 用于编译整个java工程 把编译的文件放到指定目录下

  view plain #!/bin/sh # Define some constants ONSSERVER=ONSServer PROJECT_PATH=/root/iot oid JAR_PATH=$PROJECT_PATH/lib BIN_PATH=$PROJECT_PATH/bin SRC_PATH=$PROJECT_PATH/src/$ONSSERVER

  # First remove the sources list file if it exists and then create the sources file of the project rm f $SRC_PATH/sources find $SRC_PATH/ name * java > $SRC_PATH/sources list

  # First remove the ONSServer directory if it exists and then create the bin directory of ONSServer rm rf $BIN_PATH/$ONSSERVER mkdir $BIN_PATH/$ONSSERVER

  # Compile the project javac d $BIN_PATH/$ONSSERVER classpath $JAR_PATH/jdom jar $JAR_PATH/oro jar @$SRC_PATH/sources list下面是文件run 用于执行程序 view plain #!/bin/sh

  # Define some constants ONSSERVER=ONSServer PROJECT_PATH=/root/iot oid JAR_PATH=$PROJECT_PATH/lib BIN_PATH=$PROJECT_PATH/bin

lishixinzhi/Article/program/Java/hx/201311/27024

以上是关于用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎么做???的主要内容,如果未能解决你的问题,请参考以下文章

如何用javac 和java 编译运行整个Java工程

如何让java定时执行一个方法

在java中如何让定时器只启动一次?

java代码启动一个定时任务

JAVA怎么定时自动画图

Java中如何每天定时执行数据采集接口程序?