如何解决使用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之前弹出了用于用户身份验证的弹出窗口。
现在,用户身份验证的处理如下图所示。
但是我想知道,是否有可能更改在图像中弹出的身份验证消息。 用“代替”来代替“ osascript要进行更改。请输入密码以允许这样做”。是否可以配置我的首选String或在其中提及我的应用程序名称?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。