如果JAR可执行文件位于Programs目录中,则它不会启动

时间:2011-09-13 14:29:14

标签: java permissions executable uac izpack

我陷入一个让我疯狂的非常奇怪的问题.-。 我正在Windows上开展一个相对较大的Java项目,使用NetBeans和IzPack来准备图形安装包。 一切正常,编译后的安装程序似乎正常工作,我的程序被复制到'C:\ Programs \ MyProject'文件夹中。

但是......当我双击该文件夹中的myproject.jar时,它根本没有启动。我显然试图打开一个提示并键入'java -jar myproject.jar'但没有,甚至没有一行错误代码。 好奇的事实是两个:

  • 如果我使用具有管理权限的提示打开它
  • 在同一个文件夹中有另一个jar,由izpack创建的'uninstaller.jar',双击即可。

我仔细检查了我的JVM安装,PATH / JAVA_HOME / ...值以及我的JAR的Properties-> Security选项卡,但是对于每种用户执行/读/写的权限都是正常的,并且等于卸载程序。

那么问题是什么?感谢

1 个答案:

答案 0 :(得分:2)

这几乎可以肯定是由Vista和Windows 7上的Windows UAC引起的。

您的程序可能正在尝试写入与安装目录相同的目录中的数据文件。

在Windows上,表现良好的程序会写入用户或所有用户的应用程序数据目录。

该目录的位置因Windows版本而异。

您可以使用系统属性“user.home”来查找存储数据的安全位置。

您还可以从here获取共享和每用户程序数据文件夹的环境变量列表。