2009-07-28 20 views

cevap

31

Windows'ta, ana bilgisayar adı "COMPUTERNAME" ortam değişkeninde, Linux'ta ortam değişkeni "HOSTNAME" şeklindedir. karınca özellikler aşağıdaki gibi değişmez bir şey çalışması gerekir Çünkü:

<property environment="env"/> 
<property name="env.HOSTNAME" value="${env.COMPUTERNAME}"/> 
<echo message="hostname = ${env.HOSTNAME}"/> 

yani env öneki özellikler olarak çevreyi aktarın. Env.HOSTNAME değerini, env.HOSTNAME önceden ayarlanmadıkça env.COMPUTERNAME değeri olarak ayarlayın, bu durumda 2. satırın hiçbir etkisi olmaz. Bundan sonra, hostname'nin gerekli olduğu env.HOSTNAME öğesini kullanın.

+0

güzel bir çözüm – Michael

2

Bunun için ortam değişkenlerini $ HOSTNAME (UNIX) ve% COMPUTERNAME% (Windows) kullanabilirsiniz. HOSTNAME ortam değişkeninin tanımlanıp tanımlanmadığını kontrol edebilirsiniz ve eğer değilse, tanımlandığı varsayılarak ortam değişkenini COMPUTERNAME kullanabilirsiniz. Bir geri dönüş olarak, "bilinmeyen" kullanabilirsiniz.

3

Unix'in değerini Windows sürümüne kopyalayın. Ardından $ {env.COMPUTERNAME} adresini kullanabilirsiniz.

<property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/> 
32
<exec executable="hostname" outputproperty="computer.hostname"/> 

linux ve pencereler

+0

Bunun daha güvenilir olduğunu düşünüyorum. BİLGİSAYARADI kullandığımızda, SOME makinelerinde, değerin muhafazası, makinenin isminin muhafazasıyla uyuşmuyordu. 'ana bilgisayar adı' şimdiye kadar her zaman eşleşti. – fnCzar

+1

+1. Kabul edilen cevabı denedim ve başarısız oldu. Bu harika çalıştı. Teşekkürler! –

+0

Aynı burada. Bu benim için de çalışıyor. Teşekkürler! – Curtis

-1

Ben özel bir Ant görevi yazardı üzerinde çalışacak.

Kendi görevlerinizi yazmaya başladığınızda, Ant'in çok daha eğlenceli ve kullanımı kolay olduğunu göreceksiniz. Anlaması zor olan garip çözümlere ihtiyacınız yok. Görev sadece böyle bir şey yapacağını yazıldıktan sonra

: Yerel makinenin ana bilgisayar adını bulmak için doğru yolu

<my:hostname property"hostname" /> 
8

Ant'ın HostInfo görevi kullanmaktır. Bu, tüm platformlarda çalışacak ve doğal olarak Ant tarafından desteklenecektir.

<hostinfo prefix="host." /> 
<echo message="My hostname is '${host.NAME}'" /> 
+2

Bunun "doğru" yanıt olması gerektiği görünüyor, ancak bunu kullandığımda (en azından Debian Sid sistemimde), $ {host.NAME} ',' localhost' olarak ayarlandı. Rebse'un cevabı uyarınca 'hostname' çalmak istediğim gerçek ana bilgisayar adını döndürür. –