1.
程序启动后,每天在特定的时间调用一个方法
我想写一个程序,这个程序启动之后一般不会关闭,同时在程序启动之后将每天
通过获取系统时间进行一个判断,在某个特定的时间(如16:00)调用一个方法.并执行.
请问这个改怎么写呢!?_________________________________________________________________
2.
在知道ftp地址(或其他局域网内地址)的前提下,怎样实现用java代码编写方法来访问这个ftp,并将ftp上的某个文件下载到自己的电脑上?
大家知道一点相关的信息的就说说啊...小弟急用...
程序启动后,每天在特定的时间调用一个方法
我想写一个程序,这个程序启动之后一般不会关闭,同时在程序启动之后将每天
通过获取系统时间进行一个判断,在某个特定的时间(如16:00)调用一个方法.并执行.
请问这个改怎么写呢!?_________________________________________________________________
2.
在知道ftp地址(或其他局域网内地址)的前提下,怎样实现用java代码编写方法来访问这个ftp,并将ftp上的某个文件下载到自己的电脑上?
大家知道一点相关的信息的就说说啊...小弟急用...
它支持定时调度,周期调度和类似于LINUX crontab 的调度方式.如果你的程序不是每时每刻都在运行,那就要用操作系统的调度了.
那我把我的目的说明下,我想通过编写的程序来自动访问一个ftp地址,在这个ftp地址里面有每天都会有人负责往里面放入oracle的dmp文件,而我需要定时将这个dmp文件下载下来导入我这边的数据库中.这是公司的一个项目要完善的一部分(现在都是手动拷贝导入),我现在想试着写一下能实现自动导入,现在请高手赐教.
同时我想申明下,技术没有邪恶之分.只有用途有邪恶之分.如果大家对我的RP抱有极高的不信任的话您可以选择不回帖.或者回帖说一些...
Date timeToRun = new Date(System.currentTimeMillis()+numberOfMillisecondsInTheFuture);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
// Task here ...
}
}, timeToRun);
前段时间,我们做了一个项目,跟你的需求一样。是关于附件清理的。。需要一个月中的某一天的某一时刻对文件进行选择性的清理。。
1、使用使系统的任务计划:
把你写好的程序打成jar包,在java包内确定主运行类,住运行类内通过mian方法调用相关方法执行相关任务。
设置系统的任务计划定时执行jar。
系统的计划任务:控制面板===任务计划===添加任务计划
2:通过web服务器和spring的依赖注入调用Spring的任务调度来实现:
通过配置web.xml调用Spring的依赖注入的xml配置文件,在xml实现Spring的任务调度实现定时处理。
(Spring的依赖注入和任务调度(或定时处理)网上有很多资料,可自己查询)
第二个问题:
package ftp; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List; import sun.net.TelnetInputStream;import sun.net.TelnetOutputStream;import sun.net.ftp.FtpClient; public class Ftp { private FtpClient ftpClient; /** * 连接FTP服务器 * * @param server FTP服务器IP地址 * @param user 登录名 * @param password 密码 * @throws IOException */ public void connectServer(String server, String user, String password) throws IOException { ftpClient = new FtpClient(); ftpClient.openServer(server); ftpClient.login(user, password); ftpClient.binary(); } /** * 连接FTP服务器,并指定登录路径 * * @param server FTP服务器IP地址 * @param user 登录名 * @param password 密码 * @param path 登录路径 * @throws IOException */ public void connectServer(String server, String user, String password, String path) throws IOException { ftpClient = new FtpClient(); ftpClient.openServer(server); ftpClient.login(user, password); ftpClient.cd(path); ftpClient.binary(); } /** * 上传文件.上传成功返回1,上传失败返回0. * * @param iniputStream 上传文件的输入流 * @param newName 上传文件后对文件的重命名 * @return int * @throws IOException */ public int upload(InputStream in, String newName) throws IOException { TelnetOutputStream os = null; try { // 命名文件 os = ftpClient.put(newName); byte[] bytes = new byte[1024]; int c; while ((c = in.read(bytes)) != -1) { os.write(bytes, 0, c); } } catch (IOException e) { return 0; } finally { if (in != null) { in.close(); } if (os != null) { os.close(); } } return 1; } /** * 获得文件和目录列表 * * @return * @throws IOException */ public List getFileList() throws IOException { List list = new ArrayList(); TelnetInputStream in = ftpClient.nameList("."); BufferedReader bf = new BufferedReader(new InputStreamReader(in)); String l = null; while ((l = bf.readLine()) != null) { if (!l.equals(".") && !l.equals("..")) list.add(l); } return list; } /** * 下载文件 * * @param fileName * @return * @throws IOException */ public InputStream getFile(String fileName) throws IOException { TelnetInputStream in = null; in = ftpClient.get(fileName); return in; } /** * 转到指定目录 * * @param path * @throws IOException */ public void cdPath(String path) throws IOException { ftpClient.cd(path); } /** * 关闭FTP服务 * * @throws IOException */ public void closeFTPClient() throws IOException { if (ftpClient != null) ftpClient.closeServer(); }} java中实现FTP的上传下载删除等资料网上有很多,找找看,然后稍作修改改成与自己的程序相适应的即可
Quartz 能在一个应用服务器里被实例化(或servlet容器), 并且参与XA事务
Quartz能独立运行(通过JVM),或者通过RMI
Quartz能被集群实例化
ps.waitFor();public class CountTime { public static void main(String[] args) {
long start = System.currentTimeMillis();
String cmd = "java Factorial";
if(args.length == 0)
System.out.println("输入错误!");
else
cmd += args[0];
try {
Process ps = Runtime.getRuntime().exec(cmd);
ps.waitFor();
long end = System.currentTimeMillis();
System.out.println("运行时间为"+(end - start)+"毫秒");
} catch (Exception e) {
e.printStackTrace();
}
}}这是调用另一个程序的类,只要把cmd换车你想要的东西就OK了!
package tutorial;import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;public class Time {
public static void main(String[] args) {
Timer timer=new Timer();
Calendar date=Calendar.getInstance();
date.set(Calendar.HOUR, 8); 设定时
date.set(Calendar.MINUTE, 8);设定分
date.set(Calendar.SECOND, 8);设定秒
timer.schedule(new TimerTask(){
public void run() {
System.out.println("我来运行计划任务");
}}, date.getTime(),24*60*60*1000);
}
}