2015-02-06 16 views

回答

19

其實你不能用ANT來改變它。但是,正如您已經知道部署機制使用Inno Setup並且您可以修改其行爲。

fx:deploy ANT任務期間,創建了一個默認的ApplicationName.iss文件。這個默認文件包含例如該設置負責安裝目錄。如果您沒有自行提供任何自定義,則僅創建此默認文件。所以,我會建議運行ANT腳本,複製默認文件並修改它。如果啓用了fx:deploy任務verbose標誌,你可以使用控制檯輸出找出,在那裏創建的默認文件,並在那裏爲您量身定製的文件Ant任務搜索創建一個默認前:

<fx:deploy 
    ... 
    verbose="true"> 

    <fx:info title="${appname}" vendor="${vendor}"/> 
    ... 
</fx:deploy> 

在我的情況,我發現默認的文件中

C:\Users\gfkri\AppData\Local\Temp\fxbundler3627681647438085792\windows 

,不得不把自定義的文件

package/windows/ApplicationName.iss 

相對ANT BUI ld腳本。

如果您到目前爲止,您會在ApplicationName.iss文件中找到DisableDirPage=Yes行。將其更改爲DisableDirPage=No,用戶可以更改安裝目錄。

此外,您會發現參數DefaultDirName。如果您想默認安裝您的應用程序到C:\Program File\ApplicationName,您可以使用常數{pf}例如:DefaultDirName={pf}\ApplicationName

+0

感謝的維護者 - 這是完美的......所以很容易跟隨。 :) – 2015-02-09 15:16:56

+0

雖然一個問題。我使用了{pf}/ApplicationName - 但是當它提示確認安裝位置時,它仍然將它放在C:\ Users \ username \ AppData \ Local \應用程序名稱 – 2015-02-09 15:23:35

+0

這是默認設置的結果:UsePreviousAppDir。我需要先卸載,然後使用我的新位置。謝謝! – 2015-02-09 15:55:23

5

原來的答案是不正確的,因爲該功能被添加到JDK(只是不知道什麼時候,但當它使用1.8.0u60左右時)。

只需添加<installdirChooser>一些<bundleArguments>並將其設置爲true

<plugin> 
    <groupId>com.zenjava</groupId> 
    <artifactId>javafx-maven-plugin</artifactId> 
    <version>8.4.0</version> 
    <configuration> 
     <mainClass>your.mainclass</mainClass> 
     <verbose>true</verbose> 
     <bundleArguments> 
      <identifier>SOME-GUID-USED-FOR-UPDATE-DETECTION</identifier> 
      <installdirChooser>true</installdirChooser> 
     </bundleArguments> 
    </configuration> 
</plugin> 

免責聲明:我是javafx-maven-plugin

+0

我添加了 true,它不起作用。輸出的Native Installer exe仍然不會問我安裝什麼目錄。 – 2017-08-11 06:08:50

+0

@MaxiWu你是否檢查過你的JDK是up2date?舊版本沒有包含這個功能 – FibreFoX 2017-08-11 07:09:30

+0

我查看了我的項目 - > properties-> java build path。它是JavaSE-1.8 jre1.8.0_131。還有另一個選項JavaSE-1.7 jdk1.8.0_40。我將安裝最新的jdk並重試。謝謝。 – 2017-08-11 08:13:21