几秒钟后,用java启动的.msi文件关闭。

时间:2017-08-08 10:35:08

标签: java mysql windows-installer

我正在尝试启动位于我的资源文件夹中的MySql服务器安装程序,但它会在几秒钟后终止。但是,如果我手动启动它,它运行正常,直到结束。以下是我的代码。

Thread t = new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try {
                    ClassLoader classloader = Thread.currentThread().getContextClassLoader();
                    String fileUrl = classloader.getResource("mysql.msi").getFile();
                    Runtime rf = Runtime.getRuntime();
                    Process pf = rf.exec("msiexec /i \"\\" + fileUrl + "\"");
                } catch (Exception e) {
                    // System.out.println(e.toString()); // not necessary
                    e.printStackTrace();
                }

            }
        });
        t.start();

1 个答案:

答案 0 :(得分:0)

好的,这只是一个建议,让我们来看看,Windows操作系统有一定的安全限制,只允许管理员安装或删除任何应用程序。

这就是为什么我们看到一个promt窗口要求管理员密码(或管理员的权限为YES / NO类型,以防用户以管理员身份登录),并且promt屏幕是它的核心&# 39;安全性,因为它不允许任何其他应用程序对其进行控制。

如果您通过第三方进行远程桌面,您将永远不会看到客户端计算机promt屏幕(这是出于安全限制),所以在您的情况下,您的Java应用程序是第三方应用程序,它不具备足够的许可继续进一步的操作。

因此它会在几秒后关闭。

但是,您可以通过在Windows服务控件中允许一次权限来启动和停止已安装的服务。所以我建议你只使用服务。