Проблемы с классами Java в Ubuntu - PullRequest
4 голосов
/ 18 мая 2010

Во-первых, я использую 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 Test.java

Выдает несколько ошибок, но когда я компилирую это так:

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

Работает просто отлично, это наводит меня на мысль, что по какой-то причине javac не видит переменную среды CLASSPATH? Я могу повторить это и все в терминале:

echo $ CLASSPATH дает мне то, что я вставил.

Любая помощь по этому вопросу будет принята с благодарностью.

Ответы [ 2 ]

7 голосов
/ 18 мая 2010

Работает ли это, если вы положите 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.
0 голосов
/ 18 мая 2010

Вы экспортировали все переменные окружения в файл профиля? я не увидел ни одной команды экспорта в указанном вами файле ...... используйте экспорт и попробуйте один раз ......

...