繁体   English   中英

Java类路径 - Linux

[英]Java classpath - Linux

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

我已经添加了

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"

/etc/environment 我顺便运行Ubuntu。

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

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

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"

行,然后我做源/ etc / environment,我终于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"

感谢您的时间。

我认为你不应该把你的主目录的本地路径放在系统范围的文件中。 除非你提供一些必要或有益于所有用户的更改,否则我会单独留下/etc/environment 在主目录的.bashrc中对CLASSPATH进行任何更改。

  CLASSPATH=$CLASSPATH:/home/foo:/home/foo/Java_code/my_code
  export CLASSPATH

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

 export CLASSPATH=""

或更好

 unset CLASSPATH

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

当你删除

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"

line然后source ...它不会删除CLASSPATH,因为它已经设置好了。 它不清楚已经定义的变量。

/etc/environment文件不是普通的shell脚本; 启动或登录系统时,它不会作为shell脚本执行。 因此,使用source /etc/environment运行它与正常启动系统时不一样。

请参阅: Ubuntu环境变量

/etc/environment - 此文件专门用于系统范围的环境变量设置。 它不是一个脚本文件 ,而是由赋值表达式组成,每行一个。 具体来说,此文件存储系统范围的区域设置和路径设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM