Ubuntu 中的 Java 类路径问题

标签 java linux ubuntu classpath environment-variables

首先我运行的是 Ubuntu 9.10

我已将/etc/environment 文件编辑为如下所示:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.20"
CLASSPATH="/home/travis/freetts/lib/freetts.jar:/home/travis/freetts/lib/jsapi.jar:."

然后我运行“source/etc/environment”以确保包含更改。 然后我尝试使用这个编译我的简单测试程序:

javac 测试.java

它会抛出一些错误,但是当我这样编译时:

javac -cp/home/travis/freetts/lib/freetts.jar:/home/travis/freetts/lib/jsapi.jar:.测试.java

它工作得很好,这让我相信由于某种原因 javac 没有看到 CLASSPATH 环境变量?我可以回显它和终端中的所有内容:

echo $CLASSPATH 返回我输入的内容。

如有任何帮助,我们将不胜感激。

最佳答案

如果将 export 放在 /etc/environment 中是否有效?

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.20"
export CLASSPATH="/home/travis/freetts/lib/freetts.jar:/home/travis/freetts/lib/jsapi.jar:."

我猜 CLASSPATH 在你获取脚本之前没有设置,所以你只是设置了一个局部变量。


下面是可能发生的情况的说明:

superman@metro:~$ Z=foo        # Only sets for this shell
superman@metro:~$ echo $Z
foo
superman@metro:~$ /bin/bash
superman@metro:~$ echo $Z      # Not set in sub-processes

superman@metro:~$ exit
exit
superman@metro:~$ export Z     # When exported, is part of environment
superman@metro:~$ /bin/bash
superman@metro:~$ echo $Z      # And now visible to sub-processes
foo
superman@metro:~$ exit
exit
superman@metro:~$ help export
export: export [-nf] [name[=value] ...] or export -p
     NAMEs are marked for automatic export to the environment of
    subsequently executed commands.  If the -f option is given,
    the NAMEs refer to functions.  If no NAMEs are given, or if '-p'
    is given, a list of all names that are exported in this shell is
    printed.  An argument of '-n' says to remove the export property
    from subsequent NAMEs.  An argument of '--' disables further option
    processing.

关于Ubuntu 中的 Java 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2854356/

相关文章:

java - libgdx - 将自定义类解析为数组的 json

linux - 查找、替换或插入 - 命令行

python - 我怎样才能简单地检测 python 中的鼠标移动?

linux - Bash 脚本 : Using "script" command from a bash script for logging a session

r - Debian/Ubuntu r-base-*、r-cran-*、revolution-r 软件包 : porting to ArchLinux

java - 如何实现 Java 流?

java - GAE 请求根实体上的 XG 交易

java - 在开关中添加图像 - PaintComponent 覆盖

oracle - 我可以在 Ubuntu 18.04 上安装 Oracle XE 或任何免费版本吗?

linux - 在 Ubuntu 上的 Arduino IDE 上编译 NodeMCU 时出错