Java应用程序放入程序文件时,需要管理员访问权限才能运行

时间:2018-07-18 08:47:53

标签: java javafx launch4j

我正在开发Java(JavaFX)桌面应用程序。我正在使用 launch4j 工具将其转换为exe,然后使用 Inno Setup Compiler (默认安装路径设置为C:\ Program Files(x86))创建安装程序包。 当我在桌面上复制exe或在非C的驱动器上运行该应用程序时,该应用程序本身不需要任何管理员权限,并且运行良好(如果我在本地appdata文件夹中运行它,也可以正常运行) 但是我需要将其放置在Program Files(x86)目录中。 如果我将该应用程序安装在该目录中,则该应用程序不会打开,因此我必须为launch4j创建一个清单文件,以便每次打开时都要求管理员访问。这样很好,但是在这种情况下每次都要求管理员访问。

我需要使该应用程序运行而无需每次都询问管理员访问权限。 如果有任何解决方案,请指导我。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好吧,我有点想通了。我猜jar从系统目录中读取时遇到麻烦,我必须对配置文件进行一些读/写操作。所以我将配置路径更改为:

String path = Controller.class.getProtectionDomain().getCodeSource().getLocation().getPath() + "\\Data\\";

现在,它将在jar文件中创建一个名为“ Data”的文件夹,并从那里进行读取/写入。我不知道这是不是一个不好的做法,但对我来说似乎很不错。

非常感谢@ user31601,他给了我一些提示,帮助我找到了解决方案。