Spec-Zone.ru › Octave 9

A.4.1 Доступность классов Java

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

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

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

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

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

    Если этот файл существует, его содержимое также добавляется к статическому пути к классам. Обратите внимание: архивы и каталоги классов, заданные на этом последнем шаге, будут влиять на всех пользователей.

Классы, используемые только определённым скриптом, следует помещать в динамический путь к классам. Эту часть пути к классам можно изменять во время выполнения с помощью функций 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.

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

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

© 1996–2026 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.4.0/Making-Java-Classes-Available.html

Spec-Zone.ru

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