Spec-Zone.ru › Octave 9

Next: Как использовать Java изнутри Octave, Up: Интерфейс Java [Содержание][Индекс]

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, который необходимо добавить в статический 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");

Next: Как использовать Java изнутри Octave, Up: Интерфейс Java [Содержание][Индекс]

© 1996–2023 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/v9.2.0/Making-Java-Classes-Available.html

Spec-Zone.ru

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