我有一个Java 8程序,它可以在Windows 10计算机上的任何地方正常运行,但从C:\ Program Files或C:\ Program Files(x86)下运行时,需要以“以管理员身份运行”才能工作。
运行Java程序和从C:\ Program Files访问硬件有什么限制?
该Java程序使用JNA加载DLL,并使用JavaFX来显示UI,因此可能与此相关。在JavaFX上使用同一目录中的同伴程序,但不是JNA和DLL则可以在任何地方正常工作。
这不是安装程序问题,因为不涉及安装程序。使用安装程序时,行为不会改变。
嵌入路径或
(x86)和/或路径中的空格,因为类似于C:\ Program Files(x86)的命名目录也可以正常工作。
最佳答案
我不认为该问题与Java有关,而是与操作系统安全模型有关。请注意,例如,您不能将文件直接保存到这两个文件夹中,但是可以使用提升的提示将任何文件复制到该文件夹中。这是一个很好的安全实践,过去(据我记得)可以通过关闭UAC来关闭(无论如何不建议这样做)。
如果您想将来更新应用程序,则可以将其放置在与许多应用程序不同的位置。