A.4.1 使 Java 类可用

Java 通过搜索classpath(类路径)来查找类,classpath是 Java 归档文件(JAR 文件)和/或包含类文件的目录列表。在 Octave 中,classpath由以下两部分组成:

Octave 首先搜索静态类路径,然后搜索动态类路径。因此,同时出现在静态类路径动态类路径中的类,将会在静态类路径中被找到并从该位置加载。频繁使用或必须对所有用户都可用的类,应添加到静态类路径静态类路径在 Java 虚拟机启动时一次性从纯文本文件 javaclasspath.txt(或历史上的 classpath.txt)的内容中填充。该文件中的每一行对应一个要添加到静态类路径的类路径。这些行可以指向包含类文件的目录,或包含完整类文件层次结构的 Java 归档文件。以 ‘#’ 或 ‘%’ 字符开头的注释行将被忽略。

javaclasspath.txt(或 classpath.txt)的搜索规则如下:

仅由特定脚本使用的类应放置在动态类路径中。类路径的这一部分可以在运行时使用javaaddpathjavarmpath函数进行修改。

示例:

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");

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2