从快捷方式运行时不会创建文件夹

时间:2013-01-07 12:50:58

标签: eclipse-rcp installation nsis

目前我正在测试我的Windows平台(XP及更高版本)的Eclipse RCP应用程序。

我在运行时生成HTML页面。为了保存这些HTML页面,我还在运行时创建一个文件夹。

该文件夹是在exe文件所在的同一级别创建的。 下面是应用程序目录结构的完整外观:

MyApplication
    |
    |--MyApplication.exe
    |--Myapplication.ini
    |--artifacts.xml
    |--uninstall.exe
    |--configuration
    |--p2
    |--plugins
    |--workspace
    |--cache    (user defined folder)
         |
         |--system  (this is the runtime created folder, generated HTML pages are saved here)
           |
           |--- 

这是在运行时创建文件夹的代码:

String currentPath=System.getProperty("user.dir");
File folder = new File(currentPath+"/cache/system");

一切正常。 现在使用NSIS脚本我在两个位置创建了“.exe”的快捷方式 - 一个在用户桌面上,另一个在StartMenu中。

问题是,如果我从快捷方式运行应用程序,则不会创建该文件夹。 应该怎么做才能解决这个问题?

创建镜头的脚本是:

CreateShortcut "$SMPROGRAMS\$StartMenuGroup\MyApplication.lnk" "$INSTDIR\MyApplication.exe"
CreateShortcut "$DESKTOP\MyApplication.lnk" "$INSTDIR\MyApplication.exe"

非常感谢任何评论/建议/解决方案。

2 个答案:

答案 0 :(得分:2)

  • 您应该检查用于File构造函数的路径在运行时是否正常,使用简单的println()或其他。

  • 你真的打电话给文件夹创建吗?在这里,您只需显示路径。要创建文件夹,请不要忘记致电mkdir()(或mkdirs()获取完整路径)。

  • NSIS方面的
  • :快捷方式的“工作目录”可能有误。当NSIS处理$OUTDIR指令时,工作目录是从当前CreateShortcut设置的。

    要确保设置快捷方式的工作目录字段,可以使用SetOutPath强制该目录。要使用安装应用程序的目录,只需使用$INSTDIR

    SetOutPath $INSTDIR
    

答案 1 :(得分:1)

我能看到的一个问题是: 如果您的安装位置在C:\ Program Files ....那么您可能必须以管理员身份启动eclipse。