2

目前我正在为 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"

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

4

2 回答 2

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

  • 你真的叫文件夹创建吗?在这里,您只显示路径是什么。要创建文件夹,请不要忘记调用mkdir()(或mkdirs()完整路径)。

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

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

    SetOutPath $INSTDIR
    
于 2013-01-07T13:31:04.937 回答
1

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

于 2013-01-10T10:15:52.110 回答