Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java启动的.msi文件在几秒钟后关闭。_Java_Mysql_Windows Installer - Fatal编程技术网

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

用java启动的.msi文件在几秒钟后关闭。,java,mysql,windows-installer,Java,Mysql,Windows Installer,我正在尝试启动MySql服务器安装程序,它位于我的资源文件夹中,但几秒钟后就会终止。但是,如果我手动启动它,它将正常运行,直到结束。下面是我的代码 Thread t = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try {

我正在尝试启动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();

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

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

如果您通过第三方进行远程桌面操作,您将永远看不到客户端机器promt屏幕(这是因为安全限制),因此在您的情况下,您的java应用程序是第三方应用程序,没有足够的权限继续操作

因此,它在几秒钟后关闭。


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

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

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

如果您通过第三方进行远程桌面操作,您将永远看不到客户端机器promt屏幕(这是因为安全限制),因此在您的情况下,您的java应用程序是第三方应用程序,没有足够的权限继续操作

因此,它在几秒钟后关闭。


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

你说的MySql服务器安装程序是什么意思,你应该安装一次服务器并在需要时使用它,所以你应该启动和停止它,你不应该每次都安装。我有一个安装文件,我想用Java自动启动,不管是MySQL还是其他应用程序。MySQL服务器安装程序是什么意思,你应该安装服务器一次,需要时使用它,所以你应该启动和停止它,你不应该每次都安装它。我有一个安装程序文件,我想用Java自动启动,不管是MySQL还是其他应用程序。谢谢@Manoj的建议,我已经改变了我的方法。谢谢你的建议,我已经改变了我的方法。Cheesno问题@IsaacChambers:)