我正在尝试使用 java 打包器工具打包一个 java 应用程序(我是这个工具的新手),应用程序本身必须在内部进行一些调用(使用 java 进程 api)
如果 java 应用程序以管理员权限启动,这将正常工作。例如,如果我运行我的 jar 应用程序sudo java -jar application.jar
,那么所有子进程也都成为管理员。
出于分发目的,我无法控制用户将如何启动应用程序。因此尝试使用 java packager 工具-但我需要强制应用程序以管理员权限运行。(例如,如果用户没有 sudo,应用程序将停止)
我强烈希望避免的另一种解决方法是在我启动内部进程时要求用户输入他们的管理员/sudo 密码。
---编辑--- 我认为我需要在得到评论和答案后添加更多背景。尽管问题似乎与是否检测管理员有关..这不是我的问题。
class MyApp...
main(...){
System.exec("start format.app")
}
format.app
需要管理员才能工作。
我使用 javapackager 工具来分发 MyApp.app (for mac) MyApp.exe (for windows) 等...
我希望 MyApp.app 只能由管理员用户执行。这意味着如果用户尝试启动 MyApp.app 没有管理员权限,他的操作系统会提示输入凭据,否则操作系统将不允许应用程序启动.
我的解决方法是使用 sudo 但他们我需要提示用户输入密码.. 这对我来说是一个安全问题(提示不是本机)和 2/我这种方法较弱并且可能会在附加到密码时暴露密码过程