S-JIS[2024-09-21] 変更履歴

j4rs JavaArtifact

Rustj4rsのJavaArtifactのメモ。


概要

JavaArtifactは、Mavenのアーティファクト(jarファイル)を表すトレイト
JavaArtifactを実装した具体的な構造体として、LocalJarArtifactとMavenArtifactがある。

LocalJarArtifactはjarファイルのパスを保持する。

MavenArtifactはMavenのアーティファクトIDを保持する。 (Mavenリポジトリーから自動的にjarファイルがダウンロードされる)


LocalJarArtifactおよびMavenArtifactのインスタンスは、Jvm::deploy_artifact()でセットする。
これにより、クラスパスにjarファイルが追加される。


LocalJarArtifactの例

LocalJarArtifactではjarファイルのパスを指定する。

use j4rs::LocalJarArtifact;
    let artifact = LocalJarArtifact::from("/path/hoge.jar");
    jvm.deploy_artifact(&artifact)?;

クラスパスにjarファイルを追加する方法としては、JvmBuilder::classpath_entry()を使う方法もある。


MavenArtifactの例

MavenArtifactではMavenのアーティファクトIDを指定する。

use j4rs::MavenArtifact;
    let artifact = MavenArtifact::from("org.slf4j:slf4j-api:1.7.36");
    jvm.deploy_artifact(&artifact)?;

MavenArtifactを使う場合、初回はMavenリポジトリーからjarファイルがダウンロードされ、ローカルディスク上にキャッシュされる。
Rustアプリケーションの2回目以降の実行では、キャッシュされたjarファイルが使用される。

ただ、依存しているアーティファクトを自動的に読み込んではくれないので、ひとつひとつ自分で指定する必要がある。


なお、デフォルトのMavenリポジトリーはMavenセントラルリポジトリー。
それ以外の独自のMavenリポジトリーを使いたい場合はMavenSettingsで設定する。


j4rsへ戻る / Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま