程序定时执行的一种方法

目前的程序中,一部分是使用c#编写的,一部分是使用java编写的,希望以后能够定时执行。先启动java,然后由java启动exe程序。

 

需要解决的问题

一,Java调用exe程序,给与其传递参数,根据返回值,决定下一步的执行方式。
二,Windows定时执行Jar程序。

 

一,java调用exe的方法

final Runtime runtime = Runtime.getRuntime();
Process process = null;
String[] cmds = {"E:\\222\\FFmpeg.exe","E:\\huayupart.mp4"};
try {
    process = new ProcessBuilder(cmds).start();
    System.out.println(process.isAlive())            //true
    int exitVal = process.waitFor();
    System.out.println(exitVal);                //0
    System.out.println(process.isAlive())            //false
    }
 catch(Exception e) {
       System.out.println(e.getMessage)
    }

提供exe文件路径,参数,接着调用就可以了。

isAlive()判断进程是否存活;waitfor()会阻塞等待进程执行完,保证了顺序执行。

 

传递参数

static void Main(string[] args)
{
	 if(args != null)
	 {
		 int argsLength = args.Length;
		 Console.WriteLine("Main函数参数args的长度:" + argsLength);
		 for(int i = 0;i < argsLength;i++)
		 {
			 Console.Write("第" + (i + 1) + "个参数是:");
			 Console.WriteLine(args[i]);
		 }
	 }

	 Console.ReadLine();
}

通过控制台传递,如图所示效果

 

 

二,Windows定时执行Jar程序。

步骤如下:

1:把Java项目打包成jar包

2:创建一个批处理文件(bat文件)

3:在bat文件中写命令执行jar文件,因为windows定时任务执行的是.bat文件

4:在windows中创建定时任务,每小时执行一次还是每天每周每月执行都是可以的

 

 

参考资料
java调用exe,传入参数、获取返回值
https://blog.csdn.net/u010321349/article/details/85301932

 

C#控制台程序入口函数 Main(string[] args) 参数详解
https://www.cnblogs.com/SavionZhang/p/6526637.html

 

Javaweb项目导出成jar包并使用Windows定时任务定时执行

https://blog.csdn.net/qq_36880602/article/details/77847808
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值