使用 java 的 Xampp 中 mysql 和 apache 服务的状态(运行/未运行)

Posted

技术标签:

【中文标题】使用 java 的 Xampp 中 mysql 和 apache 服务的状态(运行/未运行)【英文标题】:Status of mysql and apache services in Xampp using java (running/not running) 【发布时间】:2016-11-03 10:39:50 【问题描述】:

我正在编写一个使用mysql 进行数据获取和数据存储的程序。如果第一次使用程序,它会在第一个 jFrame 创建数据库和所有必要的表。 在以后的尝试中,它会连接到该数据库环境。我想知道如何使用java code 检查mysql serviceapache service 是否正在运行。如果服务没有运行,我必须运行它们。 我有这段代码来运行服务

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

但我怎样才能获得他们的状态(运行/未运行)。

【问题讨论】:

尝试连接apache和mysql,如果连接失败则报告。我不建议手动启动服务器进程。这会在您的程序和环境之间产生很强的依赖关系。 【参考方案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();
            

上述代码中的fFunctions class 的引用,RunMySQL();RunApache(); 是启动包含问题中代码的服务的方法。

【讨论】:

以上是关于使用 java 的 Xampp 中 mysql 和 apache 服务的状态(运行/未运行)的主要内容,如果未能解决你的问题,请参考以下文章

在java中备份一个mysql [xampp]数据库

XAMPP/MySQL 下载图像错误 - Java

使用来自 Xampp 的 mysql for java jdbc 程序

XAMPP apache 与独立 MySQL

Hibernate Dialect 和 XAMPP 的问题(MySQL-MariaDB)

Xampp 服务器上的 Java 小程序 - 在 jdbc:mysql://localhost:3306/ 上找不到合适的驱动程序