目前我正在测试我的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"
非常感谢任何评论/建议/解决方案。
答案 0 :(得分:2)
您应该检查用于File
构造函数的路径在运行时是否正常,使用简单的println()
或其他。
你真的打电话给文件夹创建吗?在这里,您只需显示路径。要创建文件夹,请不要忘记致电mkdir()
(或mkdirs()
获取完整路径)。
:快捷方式的“工作目录”可能有误。当NSIS处理$OUTDIR
指令时,工作目录是从当前CreateShortcut
设置的。
要确保设置快捷方式的工作目录字段,可以使用SetOutPath
强制该目录。要使用安装应用程序的目录,只需使用$INSTDIR
SetOutPath $INSTDIR
答案 1 :(得分:1)
我能看到的一个问题是: 如果您的安装位置在C:\ Program Files ....那么您可能必须以管理员身份启动eclipse。