2012-05-03 55 views
4

如果以下命令將user.dir設置爲「。」,UNIX環境中可能會出現什麼問題?爲什麼user.dir可以設置爲「。」?

/home/user> $ANT_DIR/bin/ant -diagnostics | grep dir 
user.dir : . 

如果我運行在不同的計算機user.dir來此命令設置爲當前目錄:

/home/user2> $ANT_DIR/bin/ant -diagnostics | grep dir 
user.dir : /home/user2 

Java不也行。

/home/user> java -cp .:$CLASSPATH test 
Exception in thread "main" java.lang.NoClassDefFoundError: test 
Caused by: java.lang.ClassNotFoundException: test 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:434) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:653) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:619) 
Could not find the main class: test. Program will exit. 

將當前目錄添加到類路徑中。

/home/user> java -cp /home/user:$CLASSPATH test 
Hello World! 

正如您所看到的,只有當我將當前目錄(而非「。」)添加到classpath時,java才找到測試類。

據我所知,一些unix環境變量有錯誤的值。但是什麼環境變量?

+0

也許問題出現在Ant中,可能是它解釋當前工作目錄('.')與'$ HOME'目錄? – maerics

+0

Java也不起作用。請參閱我的更新。 –

+0

'pwd'說什麼? USER_HOME的價值是什麼? –

回答

0

這是什麼問題?你想要用戶目錄的絕對位置嗎?

如果是的話就去做

new File(System.getProperty("user.dir")).getAbsolutePath() 
+1

用戶站點上的某些內容被破壞。專有的「user.dir」應該包含一個絕對路徑。 – holgero

1

以防萬一:系統命名爲「user.dir來」屬性應該指向當前的工作目錄,而不是用戶的主目錄(見http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)。如果您想擁有用戶主目錄,請使用名爲「user.home」的屬性。

我的Java測試程序:

public class UserDirSystemProperty { 
    public static void main(final String[] args) { 
     System.out.println(System.getProperty("user.dir")); 
    } 
} 

讓我總是當前目錄的絕對路徑。我剛剛安裝了ant(apache-ant-1.8.4),輸出也是絕對路徑。

保存當前工作目錄的唯一環境變量是PWD,但即使像這樣修改PWD PWD=. ant -diagnostics | grep dir也不會改變內容,它仍然會打印user.dir : /home/holger/Programming。所以這必須是環境以外的東西。

我的下一個猜測是權限:目錄/ home/user可能是一個NFS掛載,運行ant的用戶(某些錯位的suid-bit?)沒有權限訪問此目錄。要測試此操作:請執行cd /tmp並再次運行您的ant -diagnostics

-1

主目錄設置在/ etc/passwd文件中。

parv1616 @ parv:〜$ cat/etc/passwd | grep的parv1616

parv1616:X:1000:1000:帕爾文德·辛格,,,:/家庭/ parv1616:/斌/慶典

你只需要你想的目錄去改變它。

它也可以通過usermod命令進行更改。

如果仍然無法使用,請告訴我。

+0

我不明白這與它有什麼關係。問題是關於未正確設置Java系統屬性,而不是關於用戶的錯誤主目錄。 – Mat

相關問題