Моят Java скелет е нещо като по-долу.
Което работи перфектно, когато го стартирам след зареждане на системата, за няколко часа. Тъй като работи 24 часа за 1 ден, имам проблеми с моето приложение или самата JVM, като проблеми с хълцане/замръзване, при натискане нищо не се случва, като he is dead
.
Случва се няколко пъти, моето предположение е проблемът с паметта, когато работи дълго време, JVM някъде го причинява, но не и самото ми приложение, защото първите няколко часа няма престой. Започнете само за дълго време над 8 часа.
Пример:
public class Boot {
public static void main(String[] args) {
String myCmd = "java -cp /var/tmp/dist/App.jar main.main";
Runtime.getRuntime().exec(myCmd);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
new Thread(new Runnable() {
public void run() {
//Server port listener
}
}).start();
.....
window = new JWindow();
window.add("North", panelBgImg);
window.pack();
window.setLayout(new BorderLayout());
window.setSize(screen.width, screen.height + 1);
window.setLocationRelativeTo(null);
window.setAlwaysOnTop(true);
window.setVisible(true);
}
}
Как мога да се уверя, че JVM не причинява замръзване на приложението ми, има ли все пак това да се тества? Може ли това да помогне за разрешаването на проблема в дългосрочен план?
напр.: System.gc () и Runtime.gc ()