Я использую Cron, чтобы запланировать загрузку файла на сервер в определенное время, заданное администратором. Я создал интерфейс на Java, в котором пользователь может выбрать время выполнения программы загрузки, и представить выбранные значения после того, как представляется следующий метод выполняется:cron schedule freeze
public class Reminder {
String minute;
//static int i=0;
String heur;
String substr=",";
String patterns;
List<String> list = null;
List<String> lines = new ArrayList<>();
Timer timer;
FTPUploadFileDemo up=new FTPUploadFileDemo();
public void start() throws IOException {
/************ Get the chosen values from the administrator saved in a CSV file *********************************************************/
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader("C:/Users/BACKENDPC1/Desktop/timer.csv"));
String line = null;
while ((line = reader.readLine()) != null) {
lines.add(line);
}} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();}
/**********************create cron patterns *********************************************/
patterns="";
for(int i=0; i<lines.size();i++) {
heur=lines.get(i).substring(0, lines.get(i).indexOf(substr));
minute=lines.get(i).substring(lines.get(i).indexOf(substr) + substr.length());
System.out.println("Time selected is: "+heur+","+minute);
patterns=patterns+minute+" "+heur+" * * *|";
}
System.out.println(patterns);
// Creates the scheduler.
Scheduler scheduler = new Scheduler();
// Schedules the task, once every minute.
scheduler.schedule(patterns,new RemindTask());
scheduler.start();
try {
Thread.sleep(1L * 60L * 1000L);
} catch (InterruptedException e) {
System.out.println(e);
}
// Stops the scheduler.
scheduler.stop();
}
class RemindTask extends TimerTask {
public void run() {
up.Uplaod();
}
}
}
на планирование работ и он работает, но каждый раз, когда пользовательский интерфейс, который я создал, зависает, я не получаю никаких ошибок, и программа продолжает работать, но я больше не могу использовать интерфейс. Кто-нибудь может мне помочь.
_Don't_ спать на EDT ; _do_ см. [* Параллельность в Swing *] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/) и [* Использование таймеров Swing *] (http://docs.oracle.com/ JavaSE/учебник/uiswing/разное/timer.html). – trashgod