我写了一个java程序(有main函数的那种),我现在想让这个程序每天定时在服务器自动运行 ,望高手指点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我写了一个java程序(有main函数的那种),我现在想让这个程序每天定时在服务器自动运行 ,望高手指点相关的知识,希望对你有一定的参考价值。

这个Mian函数需要连接数据库,所以我把数据库和驱动打包成了jar包,那在服务器上怎么定时运行这个jar包呢

开始->程序->附件->系统工具->任务计划->选择添加任务计划->点击下一步->点击(浏览),找到你想定时执行的class文件,一步一步完成,相信你能看懂的,前提要配置好classPath 参考技术A 使用了Java,Timer和TimerTask类。
我写了下面,你的研究,我们希望能够给你的提示。
包cn.zkatm.test

进口的java.util.Calendar;
进口的java.util.Date;
进口java.util.Timer; />进口java.util.TimerTask;

进口cn.zkatm.domain.HistorySensorValuePerHour
进口cn.zkatm.util.FunUtil;
进口cn.zkatm.util。 JdbcTemplate的;

的公共类TestMain4

JdbcTemplate的模板=新:JdbcTemplate中();

私有String SQL =“插入到tblHistorySensorValuePerHour值?(???,'28652',5);“;
私人诠释小时= 1;

公共静态无效的主要(字符串[参数)
TestMain4 TESTM =新TestMain4();
TimeTasks任务testM.new TimeTasks();
定时器定时器=新的Timer();
timer.schedule(任务,新的日期(),1000);


的类TimeTasks扩展TimerTask的

@覆盖
公共无效的run() / a>
同步()
日期zeroDate FunUtil.getZeroHourDate();

日历CAL = Calendar.getInstance();

CAL 。使用setTime(zeroDate);

(<24小时)
cal.set(Calendar.HOUR_OF_DAY小时);
/ /很长一段时间=(新的日期()。的getTime())/ 1000;
龙时间=(cal.getTime()。的getTime())/ 1000;
对象[]#= “1001”,“10010043”,时间,;
/ /对象[]#= “1001”,“10010042”,;
template.executeDML(SQL参数);
小时+ +;

System.exit(0);







本回答被提问者和网友采纳
参考技术B while(true)
while(time==?)
//代码


参考技术C 建议你使用定时器去执行这个程序..追问

不知道怎样用定时器啊

Java:使用junit进行代码测试

我写了一个时间工具类 DateTimeUtil, 里边有一个格式化为字符串的方法

现在我写了一个main函数来测试这个方法

package com.example;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeUtil 
    /**
     * 时间对象格式化为字符串
     *
     * @param date
     * @return
     */
    public static String toDateString(Date date) 
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(date);
    

    public static void main(String[] args) 
        Date now = new Date();
        String nowString = DateTimeUtil.toDateString(now);
        System.out.println(nowString);
        // 2023-02-16
    


如果,我在这个工具类中多增加几个方法,那么main方法的代码就需要来回改动

这时候可以借助IDE和测试类来实现多个方法的测试

使用junit

文档

依赖

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

maven 项目结构

$ tree
.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── DateTimeUtil.java
    │   └── resources
    └── test
        ├── java
        │   └── com
        │       └── example
        │           └── DateTimeUtilTest.java
        └── resources

DateTimeUtil.java

package com.example;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeUtil 
    /**
     * 时间对象格式化为字符串
     *
     * @param date
     * @return
     */
    public static String toDateString(Date date) 
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(date);
    


DateTimeUtilTest.java

package com.example;

import org.junit.Test;

import java.util.Date;

public class DateTimeUtilTest 
    @Test
    public void toDateString() 
        Date now = new Date();
        String nowString = DateTimeUtil.toDateString(now);
        System.out.println(nowString);
        // 2023-02-16
    


注意:测试类的命名规则:xxxTest.java

这样依赖,代码看起来就干净整洁了

使用命令行运行测试

$ mvn test
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.example.DateTimeUtilTest
2023-02-16
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.059 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

以上是关于我写了一个java程序(有main函数的那种),我现在想让这个程序每天定时在服务器自动运行 ,望高手指点的主要内容,如果未能解决你的问题,请参考以下文章

Java:使用junit进行代码测试

vs2010中写c#,写了很多类,想在类里面添加main()做函数入口测试,但不能单独运行这个类

eclipse运行配置怎么设置?尤其是那个Main类,我写了包含main方法的类名,运行后系统说找

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?

两个构造函数和静态String变量

java 判断返回值为枚举类型