我正在尝试启动位于我的资源文件夹中的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();
答案 0 :(得分:0)
好的,这只是一个建议,让我们来看看,Windows操作系统有一定的安全限制,只允许管理员安装或删除任何应用程序。
这就是为什么我们看到一个promt窗口要求管理员密码(或管理员的权限为YES / NO类型,以防用户以管理员身份登录),并且promt屏幕是它的核心&# 39;安全性,因为它不允许任何其他应用程序对其进行控制。
如果您通过第三方进行远程桌面,您将永远不会看到客户端计算机promt屏幕(这是出于安全限制),所以在您的情况下,您的Java应用程序是第三方应用程序,它不具备足够的许可继续进一步的操作。
因此它会在几秒后关闭。
但是,您可以通过在Windows服务控件中允许一次权限来启动和停止已安装的服务。所以我建议你只使用服务。