次のコマンドで user.dir が「.」に設定されている場合、UNIX 環境で何が問題になる可能性がありますか?
/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!
ご覧のとおり、「.」ではなく現在のディレクトリをクラスパスに追加したときにのみ、java はテスト クラスを見つけました。
私が理解している限り、一部の UNIX 環境変数の値が間違っています。しかし、どの環境変数ですか?