2

現在、Windowsプラットフォーム(XP以降)用のEclipseRCPアプリケーションをテストしています。

実行時に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」のショートカットを2つの場所に作成しました。1つはユーザーのデスクトップにあり、もう1つはスタートメニューにあります。

問題は、ショートカットからアプリケーションを実行すると、フォルダーが作成されないことです。 この問題を解決するにはどうすればよいですか?

ショットカットを作成するためのスクリプトは次のとおりです。

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

One problem i could see is : if your installation location is in C:\Program Files.... then you might have to start the eclipse as Administrator.

于 2013-01-10T10:15:52.110 に答える