2016-07-01 53 views
2

我正在編寫一個程序,使用mysql來獲取數據和存儲數據。在其第一次jFrame它創建數據庫和所有必要的表,如果程序是第一次使用。
在稍後嘗試連接到該數據庫環境。我想知道java code如何檢查mysql serviceapache service是否正在運行。如果服務沒有運行,我必須運行這些服務。
我有這樣一段代碼來運行服務使用Java在Xampp中運行mysql和apache服務的狀態

1. Process process = 
    Runtime.getRuntime().exec("C:\\xampp\\mysql\\bin\\mysqld.exe"); 
2. Process process = 
    Runtime.getRuntime().exec("C:\\xampp\\apache\\bin\\httpd.exe"); 

但我怎麼能得到他們的狀態(運行/不運行)。

+0

嘗試連接到Apache和MySQL,並報告連接是否失敗。我不建議手動啓動服務器進程。這會在程序和環境之間產生強烈的依賴關係。 – Konrad

回答

2

使用此代碼這不是最好的方式但它是你可以工作的方式之一。 檢查下面

public boolean isServerUp(int port) { 
     boolean isUp = false; 
     try { 
      Socket socket = new Socket("127.0.0.1", port); 
//   Socket socket = new Socket("localhost", port); <- also this 
      // Server is up 
      isUp = true; 
      socket.close(); 
     } catch (IOException e) { 
      // Server is down 
     } 
     return isUp; 
    } 

代碼,您還可以使用localhost,而不是127.0.0.1
而且可以使用此代碼在上面的代碼檢查和運行服務

boolean isApacheRunning = f.isServerUp(82); 
boolean isMySqlRunning = f.isServerUp(3306); 
JOptionPane.showMessageDialog(null, "Is tomcat Running = " + isApacheRunning + "\nIs mysql Running = " + isMySqlRunning); 
      if (!isMySqlRunning){ 
       f.RunMySQL(); 
      } 
      if (!isApacheRunning){ 
       f.RunApache(); 
      } 

fFunctions classRunMySQL(); & RunApache();的方法來啓動包含代碼在你的問題服務的參考。