2009-07-23 64 views

回答

-1

我從來沒有聽說過這樣的屬性,因此,我認爲你應該寫你的自定義任務。

馬努

0

的JVM不提供這樣的屬性,螞蟻也沒有。不要編寫自定義任務,你可以執行以下任一操作:

  1. 編寫一個Java類,它將處理器數量打印到標準輸出。使用具有outputproperty屬性的java任務將值設置爲在ant中使用的屬性。
  2. 如果您只是構建一個單一平臺,請使用exec任務調用某些本機處理器將數量輸出到標準輸出。如上所述,使用outputproperty屬性將值設置爲在ant中使用的屬性。
+0

調用Runtime.getRuntime()availableProcessors()時。由JVM提供 – dfa 2009-07-23 08:47:13

+1

方法調用不是一個屬性,因此您需要代碼才能訪問它。 – 2009-07-23 08:59:00

3

This post by Ilia Chemodanov解釋了兩種解決方案很好。

如果你不想編譯和導入一個Java類,你可以做純螞蟻:(雖然它是非常哈克)

<target name="get-cores"> 
    <property environment="env"/> 
    <!-- support for Windows --> 
    <condition property="cores.count" value="${env.NUMBER_OF_PROCESSORS}"> 
     <os family="windows" /> 
    </condition> 
    <!-- support for Linux and Solaris (package SUNWgnu-coreutils is required) --> 
    <exec executable="nproc" outputproperty="cores.count" os="Linux,SunOS,Solaris"> 
     <arg value="--all"/> 
    </exec> 
    <!-- support for Mac OS X --> 
    <exec executable="sysctl" outputproperty="cores.count" os="Mac OS X"> 
     <arg value="-n"/> 
     <arg value="hw.ncpu"/> 
    </exec> 
    <echo message="Number of cores: ${cores.count}"/> 
</target> 
相關問題