使用 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 service
和apache 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();
上述代码中的f
是Functions class
的引用,RunMySQL();
和RunApache();
是启动包含问题中代码的服务的方法。
【讨论】:
以上是关于使用 java 的 Xampp 中 mysql 和 apache 服务的状态(运行/未运行)的主要内容,如果未能解决你的问题,请参考以下文章
使用来自 Xampp 的 mysql for java jdbc 程序
Hibernate Dialect 和 XAMPP 的问题(MySQL-MariaDB)
Xampp 服务器上的 Java 小程序 - 在 jdbc:mysql://localhost:3306/ 上找不到合适的驱动程序