2016-07-01 18 views
2

私はデータの取得とデータ保存にmysqlを使用するプログラムを書いています。最初のjFrameでは、プログラムが初めて使用されている場合、データベースと必要なすべてのテーブルが作成されます。
後で、そのデータベース環境に接続しようとします。 mysql serviceapache serviceが実行中であるかどうかを確認するには、java codeでどうすればよいか知りたいです。サービスが実行されていない場合は、それらを実行する必要があります。
私はサービス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

これは最良の方法ではありませんが、あなたが仕事をする方法の1つです。

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(); 
      } 

fサービスをチェックし、実行するためにこのコードを使用することができますがFunctions classRunMySQL(); & RunApache();の基準となるあなたの質問のようなコードが含まれているサービスを開始する方法です。

関連する問題