我的classpath设置在哪里?

时间:2010-03-20 04:55:36

标签: java classpath environment-variables

每当我打开一个Bash shell时,我的类路径就是“someProgram”。我知道向“.bashrc”添加导出条目会改变我的类路径,但我想知道其中“someProgram”被添加到类路径中(它不在“.bashrc”中)。

有没有办法追踪这个设置的位置,或者除了“.bashrc”之外我应该检查的一些典型位置?

详细信息:

我正在使用Ubuntu 9.10。

Eclipse版本:已安装3.5.1。

echo $SHELL
/bin/bash

java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)
OpenJDK Server VM (build 14.0-b16, mixed mode)

javac -version
javac 1.6.0_15

如果需要,请提供更多详细信息。

选中:

  • 〜/ .bashrc中
  • 的/ etc /简档
  • /etc/profile.d中/ *
  • 〜/ .bash_profile(不存在)
  • 〜/ .bash_login(不存在)
  • 〜/ .profile中
  • /etc/bash.bashrc

实测!

的/ etc /环境

4 个答案:

答案 0 :(得分:1)

在/ etc / profile文件中。

答案 1 :(得分:1)

答案取决于bash从何处读取配置文件。一个解释清楚的答案是here。摘录:


当bash作为交互式登录shell或具有--login选项的非交互式shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。在读取该文件之后,它按顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动shell以禁止此行为时,可以使用--noprofile选项。 ... 当启动不是登录shell的交互式shell时,如果存在这些文件,bash将从/etc/bash.bashrc和〜/ .bashrc读取并执行命令。使用--norc选项可以禁止此操作。 --rcfile文件选项将强制bash从文件中读取和执行命令,而不是/etc/bash.bashrc和〜/ .bashrc。


答案 2 :(得分:1)

重新检查所有这些文件,看看他们是否使用“.”内置命令来源任何其他文件。

答案 3 :(得分:1)

啊是的,找到哪个启动文件来源的whackamole进程。我建议强制它,试试:

$ grep CLASSPATH .?*
$ grep -r CLASSPATH --binary-files=without-match /etc/ 2>/dev/null