Java类路径 - Linux

tom*_*ggs 10 java linux ubuntu classpath

我试图了解classpath如何真正起作用.在网上搜索之后,这是我到目前为止所处的位置:

我已经添加了

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
Run Code Online (Sandbox Code Playgroud)

/etc/environment.我顺便运行Ubuntu.

Java找到路径并编译没有问题.

问题是,如果我更改CLASSPATH然后我执行:source /etc/environment,则不应用新的CLASSPATH.当且仅当我重新启动系统时才应用它.例如,如果我删除

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
Run Code Online (Sandbox Code Playgroud)

线,然后我做源/ etc /环境,我终于做了echo $CLASSPATH,我得到的是/home/foo:/home/foo/Java_code/my_code.我想我应该得到一个空行,不是吗?

有没有办法立即应用PATH或CLASSPATH变量中的更改而不必重新启动系统?

它可能会帮助您知道/ etc/environment文件最初只包含以下行:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Run Code Online (Sandbox Code Playgroud)

感谢您的时间.

Mit*_*dir 6

我认为你不应该把你的主目录的本地路径放在系统范围的文件中./etc/environment除非你提供一些必要或有益于所有用户的更改,否则我会独自离开.将任何更改添加到.bashrc您的主目录中的CLASSPATH .

  CLASSPATH=$CLASSPATH:/home/foo:/home/foo/Java_code/my_code
  export CLASSPATH
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以获取它,任何新启动的bash都会立即进行设置.


use*_*own 5

 export CLASSPATH=""
Run Code Online (Sandbox Code Playgroud)

或更好

 unset CLASSPATH
Run Code Online (Sandbox Code Playgroud)

将删除现有的Classpath.您可以在多个位置设置或取消设置类路径 - 缺少的条目不会取消设置.