Spec-Zone.ru › Octave 8

A.4.1 Доступ к Java-классам

Java находит классы, просматривая classpath, который представляет собой список Java-архивных файлов и/или каталогов, содержащих файлы классов. В Octave classpath состоит из двух частей:

  • статический classpath инициализируется один раз при запуске JVM;
  • динамический classpath, который может быть изменен во время выполнения.

Octave сначала ищет в статическом classpath, а затем в динамическом classpath. Классы, присутствующие как в статическом classpath, так и в динамическом classpath, будут найдены и загружены из статического classpath. Классы, которые будут часто использоваться или должны быть доступны всем пользователям, следует добавлять в статический classpath. Статический classpath заполняется один раз из содержимого текстового файла с именем javaclasspath.txt (или classpath.txt в исторической версии) при запуске Java Virtual Machine. Этот файл содержит по одной строке для каждого добавляемого в статический classpath элемента. Эти строки могут указывать на каталоги с файлами классов или Java-архивы с полными иерархами файлов классов. Строки комментариев, начинающиеся с символов ‘#’ или ‘%’, игнорируются.

Правила поиска для файла javaclasspath.txt (или classpath.txt):

  • Сначала Octave пытается найти его в текущем каталоге (откуда был запущен Octave). Если такой файл найден, он читается и определяет начальный статический classpath. Таким образом, можно определить статический classpath для каждого запуска Octave.
  • Далее Octave ищет файл в домашнем каталоге пользователя. Если файл javaclasspath.txt существует здесь, его содержимое добавляется к статическому classpath (если таковой имеется). Таким образом, можно создать начальный статический classpath для каждого пользователя.
  • Наконец, Octave ищет javaclasspath.txt в каталоге m-файлов, где находятся функции Octave Java. В этом каталоге находится функция javaclasspath.m, обычно по пути OCTAVE_HOME/share/octave/OCTAVE_VERSION/m/java/. Вы можете найти этот каталог, выполнив команду
    which javaclasspath
    . Если этот файл существует, его содержимое также добавляется к статическому classpath. Обратите внимание, что архивы и каталоги с классами, определённые на этом последнем шаге, будут влиять на всех пользователей.

Классы, используемые только конкретным скриптом, следует помещать в динамический classpath. Эту часть classpath можно изменить во время выполнения с помощью функций javaaddpath и javarmpath.

Пример:

octave> base_path = "C:/Octave/java_files";

octave> # add two JAR archives to the dynamic classpath
octave> javaaddpath ([base_path, "/someclasses.jar"]);
octave> javaaddpath ([base_path, "/moreclasses.jar"]);

octave> # check the dynamic classpath
octave> p = javaclasspath;
octave> disp (p{1});
C:/Octave/java_files/someclasses.jar
octave> disp (p{2});
C:/Octave/java_files/moreclasses.jar

octave> # remove the first element from the classpath
octave> javarmpath ([base_path, "/someclasses.jar"]);
octave> p = javaclasspath;
octave> disp (p{1});
C:/Octave/java_files/moreclasses.jar

octave> # provoke an error
octave> disp (p{2});
error: A(I): Index exceeds matrix dimension.

Другой способ добавить файлы в динамический classpath только для вашего учётной записи — использовать файл .octaverc, который хранится в вашем домашнем каталоге. Все команды Octave в этом файле выполняются каждый раз при запуске новой инстанции Octave. Следующий пример добавляет каталог octave в путь поиска Octave и архив myclasses.jar в этот каталог в путь поиска Java.

# contents of .octaverc:
addpath ("~/octave");
javaaddpath ("~/octave/myclasses.jar");

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v7.2.0/Making-Java-Classes-Available.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API