Java 应用程序需要 运行 的管理员权限才能放置在程序文件中

Java application requires Admin Access to run when placed in Program Files

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

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

好的,我有点明白了。我猜 jar 在从系统目录读取时遇到问题,我不得不对配置文件执行一些 read/write 操作。所以我将配置路径更改为:

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

现在它在 jar 文件中创建了一个名为 "Data" 的文件夹,并从那里创建了一个名为 read/write 的文件夹。我不知道这是否是一种不好的做法,但它对我来说似乎很管用。

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