Java 为什么我的应用程序在windows 10而不是windows 7上放置在C:\Program文件中时需要管理员权限?

Java 为什么我的应用程序在windows 10而不是windows 7上放置在C:\Program文件中时需要管理员权限?,java,windows,eclipse-rcp,rcp,windows-10-desktop,Java,Windows,Eclipse Rcp,Rcp,Windows 10 Desktop,我的Java RCP应用程序(App.exe)最近从32位转换为64位。由于它是一个64位应用程序,我使用NSIS创建了一个安装程序,它将转储所有必需的文件以及C:\Program文件中的App.exe。运行App.exe时,当应用程序试图在编辑模式下打开文件(在C:\Program files中)以转储结果/日志时,我收到一个安全异常(拒绝访问)。当我以管理员身份运行App.exe时,它工作正常。即使在非管理模式下运行,它也可以在Windows7 64位计算机上正常工作 你知道如何在非管理员模

我的Java RCP应用程序(App.exe)最近从32位转换为64位。由于它是一个64位应用程序,我使用NSIS创建了一个安装程序,它将转储所有必需的文件以及C:\Program文件中的App.exe。运行App.exe时,当应用程序试图在编辑模式下打开文件(在C:\Program files中)以转储结果/日志时,我收到一个安全异常(拒绝访问)。当我以管理员身份运行App.exe时,它工作正常。即使在非管理模式下运行,它也可以在Windows7 64位计算机上正常工作

你知道如何在非管理员模式下运行App.exe吗

注意:这不是NSIS的问题,因为samething作为32位应用程序运行良好


基本上,程序文件目录始终受到保护

您应该检查WIN 7用户权限和用户的UAC设置

与此同时


您可能需要重新考虑将数据存储在何处

有一篇关于这件事的帖子

简而言之,ProgramData包含非用户特定的应用程序数据。这些数据将可供计算机上的所有用户使用。任何全局数据都应该放在这里

AppData文件夹包含特定用户的配置设置、下载的信息/文件。因此,例如,任何特定于用户的首选项和配置文件配置都可以存储在AppData文件夹中。AppData文件夹进一步分为三个子文件夹
漫游-此文件夹包含可以随用户配置文件从一台计算机移动到另一台计算机的数据。
本地-此文件夹包含的数据不会随您的用户配置文件一起移动。
LocalLow-您可以在此文件夹中输入低级别访问信息,例如与以保护模式运行的web浏览器相关的信息


据我所知,程序文件目录一直受到保护。您确定win7用户不是UAC设置较低的管理员吗?Ps;您可能需要检查%programdata%,%appdata%等:请参阅@Stefan,抱歉,我没有检查Windows 7中的UAC设置。它被设置为低,所以将其设置为默认值,同样的问题仍然存在,因为在Windows 10中,我怀疑是否将其作为答案发布,尽管这看起来很简单,但也很容易被忽略。我会发布它,但也会标记您的问题,让社区来决定。但是,我的32位应用程序并非如此。在C:\Program文件中安装32位应用程序时,我看不到这种问题。这和比特有关吗?Stefan,上面的评论有意义吗?嗯,没有。据我所知,默认情况下程序文件是受保护的。但是可以更改安全设置。顺便说一句,32位文件夹通常是
c:\ProgramFiles(x86)