如果以下命令將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環境變量有錯誤的值。但是什麼環境變量?
也許問題出現在Ant中,可能是它解釋當前工作目錄('.')與'$ HOME'目錄? – maerics
Java也不起作用。請參閱我的更新。 –
'pwd'說什麼? USER_HOME的價值是什麼? –