微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用sudo命令时,使用GUI使javafx jar提示输入管理凭据

如何解决使用sudo命令时,使用GUI使javafx jar提示输入管理凭据

我正在尝试编写一个javafx应用程序,它将在mac设备中安装另一个pkg。我已经使用了命令

sudo -v installer -pkg /Downloads/one.pkg -target /

要在通过Javafx应用程序单击的按钮上安装pkg。

public class macinstall extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Sample");
        Button button = new Button("Click");

        EventHandler<ActionEvent> event = ae -> install2();
        button.setonAction(event);

        HBox hBox = new HBox(button);

        Scene scene = new Scene(hBox,200,100);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void runProcess(String[] Command) {
        ProcessBuilder builderObj = new ProcessBuilder(Command);
        try {
            Process process = builderObj.start();
            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printstacktrace();
        }
    }
    
    public static void install2() {
        String[] installCommand = {"bash","-c","sudo -v installer -pkg /Downloads/one.pkg -target /"};
        runProcess(installCommand);
        System.out.println("Install Completed");
    }
}

当我通过终端运行该程序时,该程序有效,在终端中询问管理员密码。 但是当我使用jre作为javafx应用程序运行时。它不是在询问管理员凭据。

解决方法

谢谢你的建议James_D。

String [] installCommand = {“ osascript”,“-e”,“使用管理员权限执行shell脚本” installer -pkg /Downloads/one.pkg -target /“”};

我使用了上面的命令,该命令从OSX访问了GUI,然后在安装pkg之前弹出了用于用户身份验证的弹出窗口。

现在,用户身份验证的处理如下图所示。

enter image description here

但是我想知道,是否有可能更改在图像中弹出的身份验证消息。 用“代替”来代替“ osascript要进行更改。请输入密码以允许这样做”。是否可以配置我的首选String或在其中提及我的应用程序名称?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。