Я знаю, що export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
додасть tools.jar до CLASSPATH, але я хочу встановити папку в CLASSPATH
подобається це
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
але це не працює.
Я знаю, що export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
додасть tools.jar до CLASSPATH, але я хочу встановити папку в CLASSPATH
подобається це
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
але це не працює.
Відповіді:
По-перше, загалом, встановлення env var CLASSPATH
зазвичай викликає більше проблем, ніж це вирішує - оскільки не всі програми хочуть / потребують одного і того ж класного шляху, і часто ламаються, коли небажані або навіть непотрібні банки включені в класний шлях. Додаток java має містити лише мінімальну кількість банок, яке йому потрібно, ні більше, ні менше.
Якщо у вас є конкретні, окремі додатки , які вимагають, щоб встановити шлях до класів, то кращим є , як правило , параметр командного рядка: java -cp path1:path2:...
. Піктограми робочого столу можуть змінити свою команду, щоб включити ці параметри, або скрипти оболонки можна змінити, щоб включити ці параметри.
Якщо говорити (а оскільки з правила завжди є винятки), то залежно від версії java (для цього потрібна java 6 або пізніша версія), ви можете вказати, що до каталогу classpath буде додано цілий каталог jar, додавши " *
" в кінці каталогу; наприклад, наступне:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Засоби:
/dir1/foo.jar
- (одиночна баночка) буде додана в класний шлях;/dir2/dir3
- всі класи, які не містять jar в цьому каталозі, будуть додані до шляху класів (повинні бути у належній структурі пакета; наприклад, com.my.Foo.class
повинні бути в /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- всі банки в цьому каталозі (тобто /dir5/dir6/*.jar
) будуть додані до classpath. Зауважте, що цей " *
" не є символом підключення (ви не можете використовувати f*.jar
або навіть *.jar
); це спеціальний символ із зазначенням "додати всі банки"Загалом, якщо вам доведеться додати цілий каталог банок на класний шлях програми, додаток було невпорядковано. Швидше, додаток повинен мати маніфест, що містить перелік банок, від якого залежить. Або принаймні, до вашого класового шляху слід додати лише одну банку, і ця баночка може мати в своєму маніфесті весь список банок у якомусь підкаталозі.
якщо ви хочете постійно встановити classpath, то 1) дізнайтеся, де встановлено java .. ви можете використовувати "whereis java" openjdk-7/6 в / usr / lib / jvm / .....
2) нам потрібно встановити CLASSPATH в / etc / середовищі
sudo gedit /etc/environment
3) додайте наступні лайки .. (НЕ ПІДТРИМУЙТЕ будь-яких просторів при типізації) (налаштувати відповідно до вашої версії та установки Java) (цей домашній шлях призначений для відкритого jdk 7)
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/bin"
export JAVA_HOME
CLASSPATH=".:/usr/lib/jvm/java-7-openjdk-i386/lib:/home/laptop/Desktop/a2"
export CLASSPATH
окремий каталог за ":"