Pessoal eu fiz esse programa em java para desligar o pc em tal hora e não deixar ficar ligado até tal hora, mas acontece que o programa tem que ficar executando o dia inteiro no pc pra pegar a hora do sisteme, e o problema é que ele utiliza mais de 90% da cpu…
[code]package Desliga;
import java.io.IOException;
import java.util.GregorianCalendar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import com.sun.corba.se.impl.presentation.rmi.IDLTypeExce ption;
public class metododesliga{
String command;
public void desliga() throws IOException{
Runtime.getRuntime().exec(“cmd /cshutdown -s -f -t 30”);
}
}[/code]
[code]package Desliga;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.Timer;
public class TimerTest extends JPanel {
JLabel label;
DateFormat dateFormat;
public TimerTest() {
this.dateFormat = new SimpleDateFormat(“HH”);
this.initialize();
}
protected void initialize() {
this.setLayout(null);
this.add(this.getButton());
this.go();
}
public JLabel getButton() {
if (this.label == null) {
this.label = new JLabel(getTime());
this.label.setBounds(10, 10, 100, 22);
}
return this.label;
}
public void go() {
ActionListener action = new ActionListener() {
public void actionPerformed(ActionEvent e) {
TimerTest.this.label.setText(getTime());
metododesliga d = new metododesliga();
if(getTime().equals(“00”) || (getTime().equals(“01”) ||
(getTime().equals(“02”) || (getTime().equals(“03”) ||
(getTime().equals(“04”) || (getTime().equals(“05”) ||
(getTime().equals(“06”) || (getTime().equals(“07”) ||
(getTime().equals(“08”) || (getTime().equals(“09”) ||
(getTime().equals(“10”)))))))))))){
try {
d.desliga();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
};
Timer t = new Timer(1000, action);
t.start();
}
public String getTime() {
return this.dateFormat.format(Calendar.getInstance().getT ime());
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
while(true){
frame.setContentPane(new TimerTest());
}
}
}
[/code]
Alguem sabe como fazer para esse programa ficar “leve”?