我有一个(对我来说)复杂的问题,但是试图解决这个线程中只有一个问题。交付一个启动MySQL的Java应用程序(自包含应用程序)
我有一个Java应用程序,在后端有一个MySQL数据库。
我希望能够通过安装程序(这也是我目前没有解决方案的一部分)预先通过数据库交付应用程序。
无论如何现在的问题是,我的首选是MySQL不应该作为服务安装。
我的理由是,我宁愿不修改机器,我的应用程序将被部署。
我更愿意提供“自包含”应用程序。
因此,如果MySQL不作为服务安装,那么它必须以某种方式启动。
我知道我可以启动MySQL作为使用独立:
mysqld --standalone --console
在这种情况下,一个新的命令行窗口中打开和MySQL运行(我在开发/测试代码中使用它为止)。
我不知道如何在应用程序部署完成后实现相同的效果(并通过运行时代码启动MySQL)。
我想到了用Runtime的和做类似:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("PATH\\mysqld --standalone --console"); //PATH is of course the appropriate path to MySQL installation
但是,这似乎并没有做任何事情。它只是在疯狂。
理想情况下,我想启动MySQL 和也没有concole打开。
有没有解决我的问题?
为什么要使用MySQL呢?你可以使用嵌入式数据库......本地Java有很多选择,它们提供了MySQL的功能奇偶校验... – Romain
是的,我知道。嵌入式数据库的问题在于它们保存所有数据以重建内联数据库,内存数据库中的文件,用户可以意外删除或损坏。我想确保这不会发生。否则,是例如HSQL将是一种选择 – Cratylus
您还需要处理其他问题,例如其他MySql安装已在使用的端口等。对于自包含应用程序,嵌入式数据库是更好的解决方案。 – mellamokb