ServerManagementApp.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.leanwo.management;
  2. import java.io.PrintWriter;
  3. import java.io.StringWriter;
  4. import javax.swing.JFrame;
  5. import javax.swing.JOptionPane;
  6. import javax.swing.SwingUtilities;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.boot.SpringApplication;
  11. import org.springframework.boot.autoconfigure.SpringBootApplication;
  12. import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  13. import org.springframework.context.annotation.ImportResource;
  14. import com.leanwo.management.util.ProgramStopUtil;
  15. @SpringBootApplication
  16. @EnableEurekaServer
  17. @ImportResource("applicationContext.xml")
  18. public class ServerManagementApp {
  19. private static Logger logger = LoggerFactory.getLogger(ServerManagementApp.class);
  20. public static void main(String[] args) {
  21. System.setProperty("java.awt.headless", "false");
  22. SpringApplication.run(ServerManagementApp.class, args);
  23. JvmExitMonit.jvmExitHook();
  24. ProgramStopUtil.generateStopBat();
  25. boolean isAutoRun = false;
  26. if (args != null && args.length > 0) {
  27. if (args[0].equals("autoRun")) {
  28. isAutoRun = true;
  29. }
  30. for (String arg : args) {
  31. logger.info("输出参数:" + arg);
  32. }
  33. }
  34. if (isAutoRun) {
  35. logger.info("程序管理器将会自动运行。");
  36. }
  37. final boolean isAutoRunFinal = isAutoRun;
  38. SwingUtilities.invokeLater(new Runnable() {
  39. @Override
  40. public void run() {
  41. try {
  42. final MainFrame mainFrame = new MainFrame(isAutoRunFinal);
  43. mainFrame.pack();
  44. mainFrame.setVisible(true);
  45. // 免配置模式的时候,启动以后界面最小化。
  46. if(isAutoRunFinal) {
  47. mainFrame.setExtendedState(JFrame.ICONIFIED);
  48. }
  49. } catch (final Exception ex) {
  50. ex.printStackTrace();
  51. final StringWriter sr = new StringWriter();
  52. ex.printStackTrace(new PrintWriter(sr));
  53. JOptionPane.showMessageDialog(null, sr.toString(), "Error", JOptionPane.ERROR_MESSAGE);
  54. }
  55. }
  56. });
  57. }
  58. /**
  59. * 在commons-daemon启动的时候,会调用启动方法
  60. * @param args
  61. */
  62. public static void start(String[] args) {
  63. main(args);
  64. }
  65. /**
  66. * 在commons-daemon停止的时候,会调用停止的方法
  67. * @param args
  68. */
  69. public static void stop(String[] args) {
  70. System.exit(0);
  71. }
  72. }