以标准用户重启应用程序

时间:2015-02-04 08:08:54

标签: java restart

我使用restart函数编写了一个java客户端/服务器应用程序。 在服务器端,我添加了一个按钮,用于向所有连接的客户端发送重置命令。

当我在计算机上运行客户端时,重启方法工作正常。

public void restartApplication() {
    try {
        final String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
        final File currentJar = new File(Client_Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());

        /* is it a jar file? */
        if (!currentJar.getName().endsWith(".jar")) {
            return;
        }

        /* Build command: java -jar application.jar */
        final String command = "\""+javaBin+".exe\" -jar \""+currentJar.getPath()+"\"";

        System.out.println(command);

        final ProcessBuilder builder = new ProcessBuilder(command);
        builder.start();
        System.exit(0);
    } catch (URISyntaxException ex) {
        Logger.getLogger(Client_Main.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(Client_Main.class.getName()).log(Level.SEVERE, null, ex);
    }
}

我的问题是,所有非管理员用户都有一个非常严格的配置文件,如果没有管理员权限,他们就无法打开命令提示符。

有没有办法,如何在不使用命令提示符的情况下重启我的jar文件,或以管理员身份运行命令promt? 我不能使用RUNAS命令,因为我必须在第一次输入管理员密码,所以我必须在500多台计算机上执行此操作,这不是一个真正的选择。

0 个答案:

没有答案