如果以下命令显示 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 环境变量的值错误。但是什么环境变量呢?