。用java启动的.msi文件在几秒钟后关闭。
我试图启动MySql服务器安装程序,它位于我的资源文件夹中,但几秒钟后终止。但是,如果我手动启动它,它会运行良好,直到结束。以下是我的代码。。用java启动的.msi文件在几秒钟后关闭。
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窗口(或管理员的权限为YES/NO类型,以防用户以管理员身份登录),并且promt屏幕是其安全性的核心,因为它不允许任何其他应用程序对其进行控制。
如果你通过第三方做远程桌面,你永远不会看到客户端机器promt屏幕(这是因为安全限制),所以在你的情况下,你的java应用程序是第三方应用程序,它没有足够的允许进一步继续操作。
因此它会在几秒钟后关闭。
你可以通过在Windows服务控制中允许一次权限来启动和停止已经安装的服务。所以我建议你只使用服务。
感谢@Manoj的建议,我改变了我的方法。干杯 – IsaacK
没问题@IsaacChambers :) –
你是什么意思的MySql服务器安装程序,你应该安装一次服务器,并在需要时使用它,所以你应该启动和停止它,你不应该每次都安装它。 –
我有一个我想用Java自动启动的安装程序文件,不要紧,如果它是MySQL或其他应用程序。 – IsaacK