2011-06-27 19 views
20

Küçük bir senaryo var Geçerli yürütme dizini geçmek için bir parametre kullanıyorum, ancak biraz daha sağlam olmasını istiyorum.Geçerli temel yürütme dizini groovy (veya java) içinde nasıl bulunur?

Temel yürütme dizini nasıl bulunur?

+1

İlgili S:: http://stackoverflow.com/questions/1163093/how scriptDir gibi bir şey atanır

def scriptDir = getClass().protectionDomain.codeSource.location.path

-do-you-get-the-yol-the-run-script-in-groovy –

+0

Teşekkürler Tim. Bu soruya verilen cevabı kullandım. –

cevap

13

kullanabilirsiniz:

soru üzerine kabul cevap here, aradığım şey. Örneğin, c:\scripts\MyScript.groovy numaralı telefondan c:\users\Scott\ numaralı telefonu arayarak c:\scripts\ numarasını bilmek istedim.

Bu

bu şekilde yapılır:

/c:/scripts/MyScript.groovy

+5

Evet, sorunuz iyi bir şekilde ifade edilmiyor. "Sınıfın yerini nasıl alacağımı" sorman gerekiyordu. Cevabını bulduğuna sevindim. –

29

bu deneyin:

System.getProperty("user.dir"); 
+0

Evet, bu ilk fikirdi, ancak sadece senaryonun nereden geldiğini, senaryonun nerede yaşadığını değil yolunu veriyor (benim sorum muhtemelen biraz kafa karıştırıcı bir şekilde yazılmış). –

11

güvenlik modeline bağlı olarak, System.getProperty(String) izin verilmez, sen Referans için

String currentDir = new File(".").getAbsolutePath() 
+1

Bu geçici çözüm yardımcı olmaz. GetAbsolutePath() için javadoc şöyle diyor: "SecurityException" - Gerekli bir sistem özellik değerine erişilemiyorsa. "* –

+3

Yeni Dosya (". ") Olmalıdır. GetAbsoluteFile(). GetParent() - bu kaldırır sondaki "/." yoldan. – CodeMonkeyKing

İlgili konular